如何使用Linq在c#list中添加缺失值列表

时间:2012-11-09 10:59:49

标签: c# linq list add items

我有一个像

这样的课程
public class MyClass
{
  public float Consumed { get; set;}
  public int RequiredValue { get; set;}
}

此类的列表

List<MyClass> list

已经有一些MyClass类型的项目包含“RequiredValue”,例如3,5,6,8和10以及“Consumed”属性中的相应值。我使用以下代码在范围1到10中找到缺失值:

var missingValues = Enumerable.Range(1, 10).Except(list.Select(p1 => p1.RequiredValue));

我想使用Linq在“列表”中添加项目,以使新项目在“RequiredValue”和“Consumed”中缺少值为0。

1 个答案:

答案 0 :(得分:5)

这将生成您的对象并将它们添加到集合中(您不需要初始化Consumed属性,因为它已经将零作为默认值):

list.AddRange(Enumerable.Range(1, 10)
                        .Except(list.Select(m => m.RequiredValue))
                        .Select(i => new MyClass() { RequiredValue = i } );