C# 如何转换列表<;字符串>;到字典<;字符串,字符串>;使用linq?
我有一个字符串列表:C# 如何转换列表<;字符串>;到字典<;字符串,字符串>;使用linq?,c#,linq,C#,Linq,我有一个字符串列表: List<string> tList=new List<string>(); tList.add("a"); tList.add("mm"); List tList=new List(); t列表。添加(“a”); t增加(“mm”); 我想将此列表转换为字典,以便使用linq使字典的键和值相同 我试过: var dict = tList.ToDictionary<string,string>(m => m, c => c
List<string> tList=new List<string>();
tList.add("a");
tList.add("mm");
List tList=new List();
t列表。添加(“a”);
t增加(“mm”);
我想将此列表转换为字典,以便使用linq使字典的键和值相同
我试过:
var dict = tList.ToDictionary<string,string>(m => m, c => c);
var dict=tList.ToDictionary(m=>m,c=>c);
但我得到了以下错误:
无法将lambda表达式转换为类型“IEqualityComparer”,因为它不是委托类型
使用方法:
List tList=new List();
t列表。添加(“a”);
t增加(“mm”);
var dict=tList.ToDictionary(k=>k,v=>v);
不要忘记添加对
系统的引用。Linq
以下是到字典的签名
ToDictionary<TSource, TKey>(
IEnumerable<TSource>,
Func<TSource, TKey>)
ToDictionary<TSource, TKey>(
IEnumerable<TSource>,
Func<TSource, TKey>,
IEqualityComparer<TKey>)
ToDictionary<TSource, TKey, TElement>(
IEnumerable<TSource>,
Func<TSource, TKey>,
Func<TSource, TElement>)
ToDictionary<TSource, TKey, TElement>(
IEnumerable<TSource>,
Func<TSource, TKey>,
Func<TSource, TElement>,
IEqualityComparer<TKey>)
或者,因为您希望项目是值,所以可以使用第一个项目,而完全避免使用第二个lambda
var dict = tList.ToDictionary(c => c);
您试图做些什么来解决这个问题,您尝试的解决方案遇到了什么问题?@Servy我更新了我的问题:)我感谢您的清晰解释,它让我意识到我可以使用
编辑
来创建字典。
var dict = tList.ToDictionary<string,string,string>(m => m, c => c);
var dict = tList.ToDictionary(m => m, c => c);
var dict = tList.ToDictionary(c => c);