首先,我的代码用引号引起来,然后用逗号隔开:
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” />
如何使它起作用?
答案 0 :(得分:5)
它是String.Split
,因此不能在多个字符串上使用它。
我猜您想将SelectMany
与Split
一起使用:
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);