如何将IEnumerable转换为组合值的字符串数组

本文关键字:字符串 数组 组合 IEnumerable 转换 | 更新日期: 2023-09-27 18:26:18

假设我有我的对象:

public class MyObject{ public p1; public p2; }

还有可枚举的版本:

IEnumerable<MyObject> MyObjects;

如何将其转换为string[],即p1 + '=' + p2值的数组?

如何将IEnumerable转换为组合值的字符串数组

你可以在上做一些简单的linq

(from m in MyObjects
select m.p1 + "=" + p2).ToArray()

如果你真的不需要它作为一个数组,你可以省略对ToArray()的调用,然后你会得到一个IEnumerable<string>而不是

如果您希望将它们全部放入逗号分隔的列表中,则不需要转换为数组,因为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()