什么是sheet = sheetList.FirstOrDefault(ws => ws.Name == string.Format(name,i)); 意思?
我正在处理Excel加载项,它具有以下代码行:
sheet = sheetList.FirstOrDefault(ws => ws.Name == string.Format(name, i));
这是什么意思? 更具体地说,我无法弄清楚ws => ws.Name
含义。
它意味着提供sheetList
的First
表,其Name
为string.Format(name, i)
。
就像是
Sheet sheet = null; foreach(Sheet ws in sheetList) { if (ws.Name == string.Format(name, i)) { sheet = ws; break; } }
sheet = sheetList.FirstOrDefault(ws => ws.Name == string.Format(name,i));
Enumerable.FirstOrDefault
是一个扩展方法,适用于任何IEnumerable<T>
。 它的目的是产生匹配给定的Func<T, bool>
的第一个项目,这相当于一个谓词。
这个谓词会做的是试图将项目的名字ws.Name
匹配到从string.Format(name, i)
返回的另一个string。
它所做的相当于:
foreach (var sheet in sheetList) { var formattedSheetName = string.Format(name, i); if (sheet.Name == formattedSheetName) { return sheet; } }