Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何转换列表<;字符串>;到字典<;字符串,字符串>;使用linq?_C#_Linq - Fatal编程技术网

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);