如何使用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指出的局限性(字符串太小的情况除外)