只是我想找到任何 CustomerData 的 intColl 的长度是个位数,然后选择那个 customerData。
List<CustomerData> cdata = new List<CustomerData>();
cdata.Add(
new CustomerData { Key = 1, Name = "Marc",
intColl = new List<int>() { 1, 2, 3 }
}
);
cdata.Add(
new CustomerData { Key = 2, Name = "Eric",
intColl = new List<int>() { 11, 12, 13 }
}
);
cdata.Add(
new CustomerData { Key = 3, Name = "Peter",
intColl = new List<int>() { 111, 112, 113 }
}
);
cdata.Add(
new CustomerData { Key = 4, Name = "Peter",
intColl = new List<int>() { 1111, 1112, 1113 }
}
);
执行以下操作时
var query = cdata.Any(d => d.intColl.Find(c => c == 1));
我收到了
无法将类型“int”隐式转换为“bool”。
最佳答案
虽然您编写的查询应该写成,
var query = cdata.Any(d => d.intColl.Contains(1));
我认为,根据您的问题文本,您应该这样做:
var query = cdata.Any(d => d.intColl.Any(c => c < 10 && c >= 0));
并返回实际对象(根据评论):
var query = cdata.FirstOrDefault(d => d.intColl.Any(c => c < 10 && c >= 0));
if (query == null) { /* nothing fits the criteria */ }
else { /* use `query` object */ }
关于C# 序列选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1903677/