如何使用LINQ从C#中的列表中的所有字符串中删除子字符串

时间:2010-07-21 12:00:17

标签: c# linq

我有一个像

这样的字符串列表
"00000101000000110110000010010011",
"11110001000000001000000010010011",

我需要从每个字符串中删除前4个字符

所以结果列表就像

"0101000000110110000010010011",
"0001000000001000000010010011",

有没有办法用LINQ做到这一点?

2 个答案:

答案 0 :(得分:8)

strings = strings.Select(s => s.Substring(4)).ToList();

如果字符串长度不是至少四个字符,那么会抛出ArgumentOutOfRange异常,因此您可能想要执行类似

的操作
strings = strings.Where(s => s.Length >= 4).Select(s => s.Substring(4)).ToList();

删除太短的字符串。

答案 1 :(得分:1)

仅限linq:

l.Select(s => new string(s.Skip(4).ToArray())).ToList();

或使用Substring

l.Select(s => s.Substring(4)).ToList();

但是由于Quartermeister注意到的限制(如果字符串太小则异常)