如何用LINQ将C# Item对象的属性值转为字符串数组集合
解决方法
这事儿超简单,用LINQ的Select方法就能轻松实现你要的转换!
先回顾下你定义的类和集合:
public class Item { public int A {get; set;} public int B {get; set;} } var items = new List<Item> { new Item { A = 1, B = 2}, new Item { A = 3, B = 4} };
只需要一行LINQ查询就能得到目标结果:
IEnumerable<string[]> result = items.Select(item => new string[] { item.A.ToString(), item.B.ToString() });
简单解释下:
Select方法会遍历items里的每一个Item对象- 对每个
Item,我们用lambda表达式创建一个新的string[],把A和B分别转成字符串后放进去 - 最终返回的就是你要的
IEnumerable<string[]>,每个元素对应原集合里的一个Item的属性字符串数组
如果你需要立即把结果转换成List(方便查看或后续操作),只需要在后面加个.ToList():
List<string[]> resultList = items.Select(item => new string[] { item.A.ToString(), item.B.ToString() }).ToList();
以后要是你的Item类加了新属性(比如C),只需要在数组里追加item.C.ToString()就行,扩展性拉满~
内容的提问来源于stack exchange,提问作者pitersmx
相关产品推荐
相关产品推荐

