如果我有一个 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/