假设我有一个名为List<string> parts
的列表字符串,带有3个索引[0,1,2]现在我想删除每个索引的第一个字符我该怎么做呢
输入字符串:
Part[0]=".delhi"
Part[1]=".10.12.12"
Part[2]=".14.14.14"
输出字符串:Part[0]="delhi"
喜欢......
答案 0 :(得分:6)
您可以使用linq
遍历列表中的所有元素,并使用Substring
返回除第一个char之外的字符串。
parts = parts.Select(p => (!string.IsNullOrEmpty(p) && p.Length > 1) ? p.Substring(1) : p).ToList();
查看Substring
答案 1 :(得分:2)
你可以做的是
List<string> part = new List<string>();
part.Add(".delhi");
part.Add(".10.12.12");
part.Add(".14.14.14");
List<string> filteredList = part.Select(x => x.Substring(1)).ToList();
答案 2 :(得分:2)
或使用简单的for循环:
for (int i = 0; i < parts.Count; i++)
{
parts[i] = parts[i].Substring(1);
}
答案 3 :(得分:0)
您可以使用LINQ:
List<string> result = Part.Select(s => string.IsNullOrEmpty(s) ? s : string.Join("", s.Skip(1))).ToList();
您还可以创建一个扩展方法:
public static class MyExtensions
{
public static string RemoveFirstChar(this string str)
{
return string.IsNullOrEmpty(str) ? str : string.Join("", str.Skip(1));
}
//Or in c#6 and above use expression bodied functions
/*
public static string RemoveFirstChar(this string str) =>
string.IsNullOrEmpty(str) ? str : string.Join("", str.Skip(1));
*/
}
并使用它:
List<string> result = Part.Select(s => s.RemoveFirstChar()).ToList();
<强> DotNetFiddle Example 强>