获取linq中某个属性名称的所有值

本文关键字:属性 linq 获取 | 更新日期: 2023-09-27 18:13:18

有没有办法获取linq中某个键的所有值?

这是我收藏的

[PId,Pname,EnvironmentName]

所以我有一个这种类型的集合,寻找一种更通用的方法,在那里我可以检查属性名称并进行选择。类似

myCollection.SelectMany(item=>item(.Where(item==propertyName(

我该怎么做?

获取linq中某个属性名称的所有值

要获得named属性值的数组,请尝试

var pName = "PId";
var values = myCollection
  .Select(x => x.GetType().GetProperty(pName).GetValue(x, null))
  .ToArray();

有几种方法可以做到这一点,例如:

var IDs = from o in myCollection
          select new { o.PId };

var IDs = myCollection.Select(o => o.PId);

我建议你从linq教程开始:http://www.tutorialspoint.com/linq/

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();