“ IEnumerable <string>”不包含“ Split”的定义

时间:2019-01-17 16:12:29

标签: c# .net

首先,我的代码用引号引起来,然后用逗号隔开:

string source = "\"kk\"jlu,fhhfh,hrhrh,rhrhr";

List<string> data = new List<string>();

var parts = source.Split('\"');
data.AddRange(parts.Where((x, index) => index % 2 != 0));
data.AddRange(parts.Where((x, index) => index % 2 == 0).Split(','));

var result = string.Join(" | ", data.Where(x => !string.IsNullOrWhiteSpace(x)));
Console.WriteLine(result);

Console.ReadKey();

在线:

data.AddRange(parts.Where((x, index) => index % 2 == 0).Split(',')); error:<br>

“ IEnumerable”不包含“ Split”的定义,因此无法找到将类型为“ IEnumerable”作为第一个参数的可访问扩展方法“ Split” />

如何使它起作用?

2 个答案:

答案 0 :(得分:5)

它是String.Split,因此不能在多个字符串上使用它。

我猜您想将SelectManySplit一起使用:

data.AddRange(parts.Where((x, index) => index % 2 == 0).SelectMany(x => x.Split(',')));

答案 1 :(得分:2)

发生此问题是因为您试图添加字符串数组。

    string source = "\"kk\"jlu,fhhfh,hrhrh,rhrhr";

    List<string> data = new List<string>();

    var parts = source.Split('\"');
    data.AddRange(parts.Where((x, index) => index % 2 != 0));
    parts.Where((x, index) => index % 2 == 0)
        .ToList()
        .ForEach(x => data.AddRange(x.Split(',')));

    var result = string.Join(" | ", data.Where(x => !string.IsNullOrWhiteSpace(x)));
    Console.WriteLine(result);