Was.OrcSearch – Blame information for rev 5

Subversion Repositories:
Rev:
Rev Author Line No. Line
5 office 1 using System;
2 using System.Collections;
3 using System.Collections.Generic;
4  
5 namespace Was.OrcSearch.Services.Extensions
6 {
7 public static class SearchServiceExtensions
8 {
9 /// <summary>
10 /// Convert an object to an enumeration of strings.
11 /// </summary>
12 /// <param name="instance">the object to convert</param>
13 /// <returns>a series of strings</returns>
14 public static IEnumerable<string> Stringify(this object instance)
15 {
16 if (instance == null)
17 yield break;
18  
19 // Support primitive types and strings.
20 var instanceType = instance.GetType();
21 if (instanceType.IsPrimitive|| instance is string)
22 {
23 yield return instance.ToString();
24 yield break;
25 }
26  
27 // Support for arrays.
28 if (instance is IList list)
29 {
30 foreach (var element in list)
31 {
32 foreach (var item in Stringify(element))
33 {
34 yield return item;
35 }
36 }
37 }
38 }
39 }
40 }