C# 如何将IEnumerable转换为组合值的字符串数组
假设我有我的目标:C# 如何将IEnumerable转换为组合值的字符串数组,c#,C#,假设我有我的目标: public class MyObject{ public p1; public p2; } 以及可枚举版本: IEnumerable<MyObject> MyObjects; i可数MyObjects; 如何将其转换为字符串[],即p1+'='+p2值的数组?您可以对其执行一些简单的linq操作 (from m in MyObjects select m.p1 + "=" + p2).ToArray() 如果您真的不需要它作为数组,您可以省略对ToArr
public class MyObject{ public p1; public p2; }
以及可枚举版本:
IEnumerable<MyObject> MyObjects;
i可数MyObjects;
如何将其转换为
字符串[]
,即p1+'='+p2
值的数组?您可以对其执行一些简单的linq操作
(from m in MyObjects
select m.p1 + "=" + p2).ToArray()
如果您真的不需要它作为数组,您可以省略对ToArray()
的调用,然后使用IEnumerable
如果希望将它们全部放在逗号分隔的列表中,则不需要转换为数组,因为string.Join
方法有一个重载,需要一个枚举。所以你可以这样做:
string.Join(",",from m in MyObjects
select m.p1 + "=" + p2);
我个人更喜欢上面的语法,但如果您都支持使用较少的字母,那么代码在语义上与下面的较短代码片段相同
string.Join(",",MyObjects.Select(m => m.p1 + "=" + p2));
MyObjects.Select(o=>o.p1+“=”+o1.p2).ToArray()
谢谢。现在要将其转换为CSV字符串,我只需string.Join()
that。。或者这一切都可以在第一次linq操作中完成吗?为什么要使用string.Join
,挖掘它的string.Join
。是因为我的版本吗?(2013)?在C#中没有区别——一个变成蓝色,另一个变成绿色。如果我使用string.Join
我使用的是C#version 4,我不确定这是否重要,无论如何,再次感谢