Was.OrcSearch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 4  →  ?path2? @ 5
/Was.OrcSearch/Services/Extensions/SearchServiceExtensions.cs
@@ -0,0 +1,40 @@
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace Was.OrcSearch.Services.Extensions
{
public static class SearchServiceExtensions
{
/// <summary>
/// Convert an object to an enumeration of strings.
/// </summary>
/// <param name="instance">the object to convert</param>
/// <returns>a series of strings</returns>
public static IEnumerable<string> Stringify(this object instance)
{
if (instance == null)
yield break;
 
// Support primitive types and strings.
var instanceType = instance.GetType();
if (instanceType.IsPrimitive|| instance is string)
{
yield return instance.ToString();
yield break;
}
 
// Support for arrays.
if (instance is IList list)
{
foreach (var element in list)
{
foreach (var item in Stringify(element))
{
yield return item;
}
}
}
}
}
}