【发布时间】:2017-10-19 04:17:47
【问题描述】:
我想查看我拥有的属性集合中是否存在值。 性能并不重要。
//Insert all the main without wav match
foreach(var mainOnly in fileStuff)
{
var finalCollection = new FinalFile();
var result = finalFile.First(s => s.MainId == mainOnly.ParsedName);
if (string.IsNullOrEmpty(result))
{
finalCollection.ClientName = mainOnly.ClientName;
finalCollection.MainId = mainOnly.ParsedName;
//finalCollection.WavName = Convert.ToInt64(wav.ParsedName);
finalCollection.LastWriteTime = mainOnly.CreationTime;
finalCollection.folder = mainOnly.FolderName;
mainAll.Add(finalCollection);
}
}
我正在循环超过 1,000 条记录,我不想添加另一个循环,所以我想我会
- 检查是否
s.MainId == mainOnly.ParsedName例如34343 == 23445 - 如果(没有返回)然后添加到我的新收藏中
问题
// what am i doing wrong here? It is not right
var result = finalFile.First(s => s.MainId == mainOnly.ParsedName);
// this is not right as it won't compile as "result" = 'ConAppFolderFileFinder.FinalFile'
// that is my projectname.FinalFile :/
if (string.IsNullOrEmpty(result))
【问题讨论】:
-
您应该使用
FirstOrDefault(),如果没有符合您条件的项目,它将返回null。First()将在没有返回任何项目时抛出异常。 -
使用 FirstOrDefault(...) 并检查结果是否为空
-
First和FirstOrDefault都不会帮助 OP,因为它们会返回FileName的实例而不是字符串。
标签: c# list linq collections