LINQ 分组依据和不包含使用问题

本文关键字:包含使 问题 LINQ | 更新日期: 2023-09-27 17:56:35

我想删除那些以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')给出错误和错误是字符文字中的字符太多

LINQ 分组依据和不包含使用问题

不是SQL而是C#,所以一个字符串有引号而不是撇号,它&&不是and,将其更改为:

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

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

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

文字中的字符过多

字符

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

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