4
可能重複查找數組索引:
How to add a case-insensitive option to Array.IndexOf被忽略大小寫
int index1 = Array.IndexOf(myKeys, "foot");
比如我有FOOT
在我的數組列表,但它會返回index1 = -1
值。
忽略案例我怎樣才能找到foot
的索引?
可能重複查找數組索引:
How to add a case-insensitive option to Array.IndexOf被忽略大小寫
int index1 = Array.IndexOf(myKeys, "foot");
比如我有FOOT
在我的數組列表,但它會返回index1 = -1
值。
忽略案例我怎樣才能找到foot
的索引?
通過使用FindIndex
和一點lambda。
var ar = new[] { "hi", "Hello" };
var ix = Array.FindIndex(ar, p => p.Equals("hello", StringComparison.CurrentCultureIgnoreCase));
使用一個IComparer<string>
類:
public class CaseInsensitiveComp: IComparer<string>
{
private CaseInsensitiveComparer _comp = new CaseInsensitiveComparer();
public int Compare(string x, string y)
{
return _comp.Compare(x, y);
}
}
然後在執行BinarySearch的排序陣列:
var myKeys = new List<string>(){"boot", "FOOT", "rOOt"};
IComparer<string> comp = new CaseInsensitiveComp();
myKeys.Sort(comp);
int theIndex = myKeys.BinarySearch("foot", comp);
一般上更大的陣列,優選靜態最有效的。
謝謝,它的工作原理。 :) – user1437001 2012-07-19 08:18:46