有没有办法获取linq中某个键的所有值?
这是我的收藏品
[PId,Pname,EnviornementName]
所以我有一个这种类型的集合,寻找更通用的方法,我可以检查属性名称并进行选择。像,
myCollection.SelectMany(item => item)。Where(item == propertyName)
我该怎么做?
答案 0 :(得分:3)
要获取named
属性值数组,请尝试
var pName = "PId";
var values = myCollection
.Select(x => x.GetType().GetProperty(pName).GetValue(x, null))
.ToArray();
答案 1 :(得分:0)
using System.Linq;
MyCollection.Select(x => x.Pid).ToArray();
或获取唯一值
MyCollection.Select(x => x.Pid).Distinct().ToArray();
或者更好的是,排序的唯一值数组
MyCollection
.OrderBy(x => x.Pid)
.Select(x = x.Pid)
.Distinct()
.ToArray();
答案 2 :(得分:0)
有几种方法可以做到,例如:
var IDs = from o in myCollection
select new { o.PId };
或
var IDs = myCollection.Select(o => o.PId);
我建议您从一些linq教程开始:http://www.tutorialspoint.com/linq/