c#使用linq查找对象上缺少的序列号

时间:2018-01-27 08:26:02

标签: c# linq

我有一个包含类的列表,并且具有一个名为TransactNo的整数属性。

在另一篇文章中发现了这个

var list = new List<int>(new[] { 1, 2, 4, 7, 9 }); var result = Enumerable.Range(0, 10).Except(list);

如何在数组或对象场景列表中使用它?

var list<myclass> obj = new list<myclass>();
var result = Enumerable.Range(obj.transactNo[0],obj.transactNo[100]).Except(obj);  

我遇到错误

  

严重级代码描述项目文件行抑制状态   错误CS1929&#39; IEnumerable<int>&#39;不包含&#39;除外&#39;的定义和最好的扩展方法重载&#39; Queryable.Except<<anonymous type: int TransNo>>(IQueryable<<anonymous type: int TransNo>>, IEnumerable<<anonymous type: int TransNo>>)&#39;需要{&lt; IQueryable<<anonymous type: int TransNo>>&#39;

类型的接收器
public class myclass
{
    public int TransactNo { get; set; }
    public string Description { get; set; }
    public decimal Amount { get; set; }
}

1 个答案:

答案 0 :(得分:0)

这个怎么样?

var result = Enumerable.Range(obj[0].TransactNo, obj[100].TransactNo)
.Except(obj.Select(x=> x.TransactNo)); 

.Except方法需要整数列表,而不是对象列表。这就是为什么你有错误。

希望有所帮助,