LINQ Group由而不包含使用问题

时间:2015-06-17 07:42:03

标签: c# linq

我想删除那些以VM & Voice Mail

开头的用户数据
var csvlines = File.ReadAllLines(@"M:\smdr(backup08-06-2015).csv");
var csvLinesData = csvlines.Skip(1).Select(l => l.Split(',').ToArray());

var groupOfUser = from line in csvLinesData 
                  where  !line[12].contains('VM') and !line[12].contains('Voice Mail')
                  group line by line[12] into newGroup 
                  orderby newGroup.Key 
                  select newGroup;

此行where !line[12].contains('VM') and !line[12].contains('Voice Mail')给出错误和错误字符文字中的字符太多

3 个答案:

答案 0 :(得分:2)

它不是SQL而是C#,因此字符串的引号不是撇号而它的&&不是and,请将其更改为:

where  !line[12].Contains("VM") && !line[12].Contains("Voice Mail")

答案 1 :(得分:1)

''应该用于定义字符文字,如单个数字或alfa。要定义字符串,您应该使用“”:

where  !line[12].Contains("VM") && !line[12].Contains("Voice Mail")

答案 2 :(得分:1)

  

字符文字中的字符太多

字符文字用单引号表示,应该是单个字符 - 即'VM''Voice Mail'对于字符文字而言太长。在C#中,您必须对字符串使用双引号。此外,您需要使用&&,而不是and

where  !line[12].contains("VM") && !line[12].contains("Voice Mail")