sheet = sheetList.FirstOrDefault是什么(ws => ws.Name == string.Format(name,i));意思?

时间:2015-07-06 12:34:42

标签: c# excel vsto

我正在处理具有以下代码行的Excel加载项:

sheet = sheetList.FirstOrDefault(ws => ws.Name == string.Format(name, i));

这是什么意思?更具体地说,我无法弄清ws => ws.Name的含义。

2 个答案:

答案 0 :(得分:1)

Enumerable.FirstOrDefault是一种适用于任何IEnumerable<T>的扩展方法。它的目的是产生与给定Func<T, bool>匹配的第一个项目,它等同于谓词。

此谓词将尝试将项目的名称ws.Name与另一个字符串匹配,该字符串从string.Format(name, i)返回。

它的作用相当于:

foreach (var sheet in sheetList)
{
    var formattedSheetName = string.Format(name, i);
    if (sheet.Name == formattedSheetName)
    {
        return sheet;
    }
}

答案 1 :(得分:1)

这意味着从First = sheetList 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 =&gt; ws.Name == string.Format(name,i));