enter code here
我有一个GlobalTerms类,它包含一个数据成员术语,它是Term类型的列表。
每个Term类有3个成员。
所以,它看起来像:
Class GlobalTerms
{
IEnumerable<TermInfo> UserTerms;
}
Class TermInfo
{
public int Id { get; set; }
public string Note{ get; set; }
public bool IsApproved{ get; set; }
}
如果我有一个GlobalTerms对象(globalTerms),我怎样才能获得TermInfo中的Status等于True的TermInfo对象?
我试着写这样的东西:
GlobalTerms globalTerms = new GlobalTerms();
globalTerms.UserTerms.Where(x => x.IsApproved.Equals(true))
.Select(x => x.Id);
我的任务是检查UserApperms中的所有项目在IsApproved字段中是否为true; 结果我收到错误: System.ArgumentNullException:值不能为null。参数名称:source 提前感谢您的帮助,
解答: 结果,使用下一个代码解决了这个问题:
*termsList* - is a IList<GlobalTerms>
foreach (var singleTerm in termsList)
{
var sourceTermsList = singleTerm.UserTerms.ToList();
foreach (var status in sourceTermsList)
{
status.IsApproved.Should().BeTrue();
}
}
感谢所有人,
答案 0 :(得分:0)
您创建了新对象,其属性UserTerms为null
答案 1 :(得分:0)
您永远不会在UserTerms
中初始化GlobalTerms
成员,因此当您创建GlobalTerms
的新实例时,UserTerms
IEnumerable
为空。在对它运行linq查询之前,需要将其设置为某种非空集合。
此外,IsApproved
成员是什么?如果这是一个可以为你的问题的可空类型。