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

4

我有一个类似于

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在“list”中添加项目,使得新项目的“RequiredValue”和“Consumed”值缺失,且为0。
1个回答

5

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接