我找到了确定IList<string>
是否包含使用不区分大小写的元素的答案:ilist.Contains(element, StringComparer.CurrentCultureIgnoreCase)
但我想要做的是找到IList中对应的元素本身到我搜索的元素。例如,如果IList包含{Foo, Bar}
并且我搜索fOo
,我希望能够接收Foo
。
我并不担心倍数,并且IList似乎不包含除IndexOf
以外的任何功能,但对我没什么帮助。
谢谢, 阿里克
答案 0 :(得分:1)
要查找项目的索引,您可以使用FindIndex
函数和自定义谓词进行不区分大小写匹配。同样,您可以使用Find
来获取实际项目。
我可能会创建一个扩展方法来用作过载。
public static int IndexOf(this List<string> list, string value, StringComparer comparer)
{
return list.FindIndex(i => comparer.Equals(i, value));
}
public static int CaseInsensitiveIndexOf(this List<string> list, string value)
{
return IndexOf(list, value, StringComparer.CurrentCultureIgnoreCase);
}
public static string CaseInsensitiveFind(this List<string> list, string value)
{
return list.Find(i => StringComparer.CurrentCultureIgnoreCase.Equals(i, value));
}