我需要區分大小寫的列表或集合的集合類型(字符串)。創建一個最簡單的方法是什麼?你可以指定你想獲得一個詞典的按鍵比較的類型,但我不能找到一個列表類似的事情。不區分大小寫的列表
回答
看起來像它可以充分利用KeyedCollection類:
public class Set<T> : KeyedCollection<T,T>
{
public Set()
{}
public Set(IEqualityComparer<T> comparer) : base(comparer)
{}
public Set(IEnumerable<T> collection)
{
foreach (T elem in collection)
{
Add(elem);
}
}
protected override T GetKeyForItem(T item)
{
return item;
}
}
假設你正在使用.NET 3.5,你可以用:
var strings = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
...或類似的東西,在那裏你會選擇適當的文化背景,以及。
名單並沒有真正有大部分的比較的想法 - 只有當你調用IndexOf
和相關方法。我不相信有任何指定比較的方法。但是,您可以使用帶謂詞的List<T>.Find
。
類似的故事在這兒,希望檢查contains
例如
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
使用LINQ,這增加了.Compare
using System.Linq;
using System.Collections.Generic;
List<string> MyList = new List<string>();
MyList.Add(...)
if (MyList.Contains(TestString, StringComparer.CurrentCultureIgnoreCase)) {
//found
}
你不需要「的LINQ」使用包含方法 – 2013-07-13 06:49:03
@ geo1701:但你做** **需要使用'用System.Linq'的'StringComparer'來獲得新的過載! – 2013-11-21 07:28:09
謝謝,很好的答案,我希望有一個擴展,而不是寫我自己。否則我不會知道去哪裏看! – Abacus 2014-02-10 23:16:22
var Addresses = Pr.Where(a = >a.Key.ToUpper() == "KEY VALUE").ToList();
只是讓你的密鑰大寫的新方法和搜索大寫VALUE
這完全是我想避免的破解。 – Grzenio 2016-05-06 08:24:54
- 1. 使區分大小寫不敏感的區分大小寫表
- 2. 區分大小寫的URL不區分大小寫
- 3. VB.NET不區分大小寫;很好的區分大小寫?
- 4. Oracle 10G不區分大小寫的列
- 5. Lucene如何區分大小寫和不區分大小寫
- 6. 爲什麼區分大小寫和不區分大小寫?
- 7. 在區分大小寫的列中忽略大小寫的搜索(並且不區分大小寫)
- 8. 區分大小寫區分大小寫還是全大寫?
- 9. 不區分大小寫陣列搜索
- 10. 不區分大小寫反序列化
- 11. 不區分大小寫
- 12. 不區分大小寫preg_replace_callback
- 13. distinctUnionOfObjects不區分大小寫
- 14. 不區分大小寫
- 15. System.IO.FileInfo不區分大小寫
- 16. MySQL不區分大小寫
- 17. 不區分大小寫Func
- 18. 不區分大小寫#define
- 19. 不區分大小寫OptionParser
- 20. FirebirdSql不區分大小寫
- 21. 不區分大小寫
- 22. CEDET:不區分大小寫?
- 23. SOLR不區分大小寫
- 24. 不區分大小寫QueryExpression
- 25. 不區分大小寫Restriction.IN
- 26. Zend_Controller_Router_Route_Regex不區分大小寫
- 27. solr不區分大小寫
- 28. GetElementsByTagName不區分大小寫?
- 29. 不區分大小寫array_unique
- 30. 不區分大小寫
我堅持與.net 2可悲的是:( – Grzenio 2009-10-07 10:48:51