用于非类型化 IEnumerable 的 LINQ
LINQ for untyped IEnumerable
我正在通过反射获取 e
对象,然后,如果它是 IEnumerable
,则将其转储到字符串:
public static string EnumerableToString(this IEnumerable e, string separator)
{
List<string> list = new List<string>();
foreach (object item in e)
list.Add($"\"{item}\"");
return "[" + string.Join(separator, list) + "]";
}
我想知道是否有更紧凑的方法来使用 LINQ 执行此操作。 LINQ的Select
方法只适用于IEnumerable<T>
,不适用于IEnumerable
。
您可以使用OfType
方法:
public static string EnumerableToString(this IEnumerable e, string separator)
{
return $"[{string.Join(separator, e.OfType<object>().Select(x => $"\"{x}\""))}]";
}
我正在通过反射获取 e
对象,然后,如果它是 IEnumerable
,则将其转储到字符串:
public static string EnumerableToString(this IEnumerable e, string separator)
{
List<string> list = new List<string>();
foreach (object item in e)
list.Add($"\"{item}\"");
return "[" + string.Join(separator, list) + "]";
}
我想知道是否有更紧凑的方法来使用 LINQ 执行此操作。 LINQ的Select
方法只适用于IEnumerable<T>
,不适用于IEnumerable
。
您可以使用OfType
方法:
public static string EnumerableToString(this IEnumerable e, string separator)
{
return $"[{string.Join(separator, e.OfType<object>().Select(x => $"\"{x}\""))}]";
}