【发布时间】:2011-09-01 08:58:33
【问题描述】:
我有一段代码:
List<OneFeat> Feats;
...
List<OneFeat> Results = new List<OneFeat>(0);
foreach (OneFeat Test in Feats)
if (String.Compare(Test.Name, Target, true) == 0)
Results.Add(Test);
return Results;
Resharper 提供:
List<OneFeat> Results = new List<OneFeat>(0);
Results.AddRange(Feats.Where(Feat => String.Compare(Feat.Name, Target, true) == 0));
return Results;
这当然有效。但是,它正在创建一个列表并将其添加到一个空列表中,因此我尝试将其简化为:
return Feats.Where(Feat => String.Compare(Feat.Name, Target, true) == 0));
它不会编译,因为它需要一个演员表。如果我添加演员表,它会在运行时失败。
有没有什么方法可以在不复制结果列表的情况下对其进行编码?
【问题讨论】:
标签: c# linq type-conversion