我正在寻找一种基于密钥对NameValueCollection进行排序的简单方法 - 但它不应该是性能很重要.
Mar*_*ell 13
从SortedDictionary<string,string>或开始,SortedList<string,string>你已经在那里......
如果您需要每个键的多个项目,那么请考虑一个SortedDictionary<string,List<string>>.有一些方法可以使用扩展方法简化添加等 - 它不一定非常可怕.
另请注意,这NameValueCollection不区分大小写,因此您可能需要使用其中一个不敏感的比较 - 例如:
Dictionary<string,string> data = new Dictionary<string,string>(
StringComparer.InvariantCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
(编辑)这是一个使用扩展方法在C#3.0中针对单个键填充多个值的示例:
static void Main()
{
var data = new Dictionary<string, List<string>>(
StringComparer.InvariantCultureIgnoreCase);
data.Add("abc", "def");
data.Add("abc", "ghi");
}
static void Add<TKey, TValue>(this IDictionary<TKey, List<TValue>> lookup,
TKey key, TValue value)
{
List<TValue> list;
if (!lookup.TryGetValue(key, out list))
{
list = new List<TValue>();
lookup.Add(key, list);
}
list.Add(value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3679 次 |
| 最近记录: |