foreach是获取对象属性值的唯一选项吗? (如果我将其存储在var类型中)
IList<SampleClass> samples = GetIList();
var onesample = samples.Select(p => p.Propy == "A").FirstOrDefault();
我是否需要遍历'onesample'以使用foreach或更好的方式获取值?
答案 0 :(得分:4)
试试吧。
IList<SampleClass> samples = GetIList();
SampleClass onesample = samples.FirstOrDefault(p => p.Propy == "A");
答案 1 :(得分:1)
你不需要选择或在哪里...你可以在FirstOrDefault上应用lambda express
IList<SampleClass> samples = GetIList();
var onesample = samples.FirstOrDefault(p => p.Propy == "A");
答案 2 :(得分:0)
IList<SampleClass> samples = GetIList();
var onesample = samples.Select(p => p.Propy == "A").FirstOrDefault();
应该是..
IList<SampleClass> samples = GetIList();
var onesample = samples.Where(p => p.Propy == "A").FirstOrDefault();
这将为您提供SampleClass
答案 3 :(得分:0)
我知道 OP 的问题完全没有帮助,但万一有人发现自己在这里(就像我一样)因为他想将 LINQ 与 IList 一起使用(一个很好的例子是尝试在 WPF Combobox 的 SelectionChanged 处理程序中获取选定的项目) ,这是我的解决方案:
将 IList
转换为 IEnumerable<T>
:
private void Combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string item = ((IEnumerable<object>)e.AddedItems).FirstOrDefault() as string;
Console.WriteLine($"Combo item is: '{item}'");
}