我有以下代码:
static void Main(string[] args)
{
List<Stock> ticker = new List<Stock>();
ticker.Add(new Stock("msft"));
ticker.Add(new Stock("acw"));
ticker.Add(new Stock("gm"));
ticker = ticker.OrderBy(s => s.Name).ToList();
foreach (Stock s in ticker)
{
Console.WriteLine(s.Name);
}
Console.WriteLine("\n");
ticker = ticker.RemoveAll(s => s.TickerSymbol == "gm");
foreach (Stock s in ticker)
{
Console.WriteLine(s.Name);
}
}
股票是一个具有字符串属性TickerSymbol和Name的对象。它还具有双重属性价格、ChangeDollars和ChangePercent。
我编写的第二个LINQ语句出现了错误,错误消息为“无法隐式转换类型'int'为'System.Collections.Generic.List'”。我不明白'int'类型从何而来,也不知道如何修复此错误,因为程序中没有使用任何'int'值。
我对LINQ非常陌生,这是我第一次使用它。这个错误很可能是因为我不知道的LINQ某些复杂性引起的。
有人知道为什么会发生这种错误以及如何修复它吗?
RemoveAll
函数。 - dcastrox => y
表达式。这被称为 Lambda 表达式,它是一种用于定义委托的语法,而不是 LINQ。简单来说,LINQ 是所有集合定义的一组扩展方法,例如 Select、Where、OrderBy。这些方法大量使用了 Lambda 表达式和委托,这也可能会让你感到困惑。 - dcastro