我正在尝试使用 LINQ 返回一个 id 列表,给定一个对象列表,其中 id 是一个属性。我希望能够做到这一点,而无需遍历每个对象并提取我找到的唯一 ID。
我有一个 MyClass 类型的对象列表,这个类的属性之一是一个 ID。
public class MyClass
{
public int ID { get; set; }
}
我想编写一个 LINQ 查询来返回这些 Id 的列表。
我该怎么做,给定一个 IList<MyClass>
以便它返回一个 IEnumerable<int>
的 ID?
我确信必须可以使用 LINQ 在一两行中完成此操作,而不是遍历 MyClass 列表中的每个项目并将唯一值添加到列表中。
DistinctBy
,它将根据 ID
为您提供不同的 MyClass
。用法:var distincts = list.DistinctBy(x => x.ID);
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();
var idList = yourList.Select(x=> x.ID).Distinct();
使用 Distinct 时,我们也必须转换为 IEnumerable。如果列表是
IEnumerable<T> ids = list.Select(x => x).Distinct();
int[] numbers = {1,2,3,4,5,3,6,4,7,8,9,1,0 };
var nonRepeats = (from n in numbers select n).Distinct();
foreach (var d in nonRepeats)
{
Response.Write(d);
}
输出
1234567890
不定期副业成功案例分享