C# 在列表中查找特定字符串<&燃气轮机;

C# 在列表中查找特定字符串<&燃气轮机;,c#,linq,list,C#,Linq,List,我正在使用我的列表iList,如下所示: 现在我想说的是: public string getStaticName(string SPFriendlyName) { if (!string.IsNullOrEmpty(SPFriendlyName)) { foreach (SharepointFieldMapper x in iList) { if (string.Equals(iList.Fi

我正在使用我的
列表iList
,如下所示:

现在我想说的是:

 public string getStaticName(string SPFriendlyName)
 {
    if (!string.IsNullOrEmpty(SPFriendlyName))
    {
        foreach (SharepointFieldMapper x in iList)
        {            
            if (string.Equals(iList.FindAll(FriendlyName); (SPFriendlyName)){} //Didn't run

            result = iList.Find(x => x.FriendlyName.Contains(SPFriendlyName))); // Didn't run either
        }
 }
基本上,我试图在列表中搜索作为参数的SPFriendlyName的值。但两次尝试都显示出一个空洞的结果


我不介意它是否是Linq。

所以您想获得列表中的第一个
FriendlyName
,即
SPFriendlyName

string firstmatchingFriendlyName  = iList
    .Where(x => x.FriendlyName == SPFriendlyName)
    .Select(x => x.FriendlyName)
    .DefaultIfEmpty(null) // specify the replacement value
    .First();

这将搜索第一个
SharepointFieldMapper
,其中
FriendlyName
等于参数并选择此字符串属性
DefaultIfEmpty
允许指定替换值,如果没有具有该名称的替换值,则使用该替换值<代码>可枚举。首先选择第一个匹配项或替换值。

IsNullOrEmpty检查应该在循环之外进行,它的结果在一次迭代到下一次迭代之间不会有任何不同。作为旁注,您的
if(!string.IsNullOrEmpty(SPFriendlyName))
应该在
foreach
之外。“两次尝试都没有成功”-这是您的问题出了问题的地方。:P问题出在哪里?在代码中设置一个断点,并逐步查看发生了什么。如果“没有运行”“那么它很可能不满足达到该代码所需的条件。谢谢各位,我已经更改了代码,@Octopoid如果结果是错误的,那么另一个x没有问题??