c# - 如何创建 IEnumerable.ToString

标签 c# .net linq .net-4.0 ienumerable

如果我有一个 IEnumerable,这是我创建一个 ToString 方法的最干净的方法,该方法吐出以逗号分隔的值吗?

   var enumOfObjects = myEnumerable as IList<object> ?? myEnumerable.Cast<object>().ToList();
   var enumOfStrings = enumOfObjects.Select(x => x.ToString());
   var finalString = String.Join(",", enumOfStrings);

或者,foreach 循环会更好吗?还是有更简洁的方法来做到这一点?

最佳答案

以下更短(并且可能被认为更简洁):

enumOfObjects.Aggregate((a,b) => a+","+b))

看起来像:

IEnumerable<object> enumOfObjects = new List<object> {1, "Cat", 3, 4};
Console.WriteLine(enumOfObjects.Aggregate((a,b) => a+","+b));
//outputs 1,Cat,3,4

如果您真的想将它用作字符串,您需要对其调用 ToString() 或将其转换为字符串。

关于c# - 如何创建 IEnumerable.ToString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17227326/

相关文章:

c# - 通过机器人框架的电报聊天键盘

c# - 如何将 .NET 库的源代码获取到 VS

c# - LINQ 过滤基于两个属性的元素

c# - 如何执行 LINQ 查询并选择?

c# - 更改 WPF StackPanel 模板

c# - HttpWebRequest .Net Core 设置超时

c# - 元组必须包含至少两个元素

c# - 使用 C# 获取特定 XML 元素值的问题

c# - 在一条语句中从 Xml 文档中选择多个值

c# - 字段 'FIELD' 从未分配给,并且始终具有其默认值