Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
开始一天的简单linq查询_Linq_C# 4.0 - Fatal编程技术网

开始一天的简单linq查询

开始一天的简单linq查询,linq,c#-4.0,Linq,C# 4.0,我有一个类,它包含一个int、字符串和指向其他类的指针。在选择.Distinct之前,我正在尝试提取字符串并对其执行子字符串操作。我的LINQ代码看起来不错 List<string> crops = (from m in cropTypes let cw = m.CropName let kw = cw.Substring(0, cw.LastIndexOf(")") + 1) select(kw).Di

我有一个类,它包含一个int、字符串和指向其他类的指针。在选择.Distinct之前,我正在尝试提取字符串并对其执行子字符串操作。我的LINQ代码看起来不错

List<string> crops = (from m in cropTypes
            let cw = m.CropName
            let kw = cw.Substring(0, cw.LastIndexOf(")") + 1)
                select(kw).Distinct()).ToList();
我也试过了

var crop = …
List<string> crops = crop.ToList();
当我尝试编译时,我得到

无法隐式转换类型

System.Collections.Generic.List<System.Collections.Generic.IEnumerable<char>> to System.Collections.Generic.List<System.Collections.Generic.IEnumerable<string>>
在托利斯特线上

m、 CropName绝对是一个字符串

为什么编译器认为我使用的是字符列表而不是字符串列表,以及如何解决这个问题

没有什么比一个简单的问题更能在一天的开始就让你难堪的了

试试看

List<string> crops = (from m in cropTypes
  let cw = m.CropName
  let kw = cw.Substring(0, cw.LastIndexOf(")") + 1)
  select kw).Distinct().ToList();

如果对字符串调用Distinct,实际上是在枚举字符串的字符。

试试这个IEnumerable crops=。。。。并移除。托利斯;因为您正在对字符串对象执行操作。设cw=m.CropName,此处CropName为字符串类型,不可IEnumerable。所以,如果您对字符串执行Distinct,那么它将返回IEnumerable`试试这个lambda表达式。cropTypes.Selectc=>c.CropName.Substring0,c.CropName.LastIndexOf+1.Distinct.ToList;请仔细查看并编辑,以便浏览问题列表的人能够真正了解您的问题。