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

如何使用LINQ从C#中列表中的所有字符串中删除子字符串,c#,linq,C#,Linq,我有一个字符串列表,比如 "00000101000000110110000010010011", "11110001000000001000000010010011", 我需要从每个字符串中删除前4个字符 因此,生成的列表如下所示 "0101000000110110000010010011", "0001000000001000000010010011", 使用LINQ有什么方法可以做到这一点吗 strings = strings.Select(s => s.Substring(4))

我有一个字符串列表,比如

"00000101000000110110000010010011",
"11110001000000001000000010010011",
我需要从每个字符串中删除前4个字符

因此,生成的列表如下所示

"0101000000110110000010010011",
"0001000000001000000010010011",
使用LINQ有什么方法可以做到这一点吗

strings = strings.Select(s => s.Substring(4)).ToList();
如果字符串长度不超过四个字符,则会抛出ArgumentOutOfRange异常,因此您可能需要执行以下操作

strings = strings.Where(s => s.Length >= 4).Select(s => s.Substring(4)).ToList();
删除太短的字符串

仅限linq:

l.Select(s => new string(s.Skip(4).ToArray())).ToList();
或者使用子字符串

l.Select(s => s.Substring(4)).ToList();
但有Quartermeister指出的局限性(字符串太小的情况除外)