仅删除列表<string>中的第一个字符

时间:2018-06-14 06:38:29

标签: c#

假设我有一个名为List<string> parts的列表字符串,带有3个索引[0,1,2]现在我想删除每个索引的第一个字符我该怎么做呢 输入字符串:

Part[0]=".delhi"
Part[1]=".10.12.12"
Part[2]=".14.14.14"

输出字符串:Part[0]="delhi"喜欢......

4 个答案:

答案 0 :(得分:6)

您可以使用linq遍历列表中的所有元素,并使用Substring返回除第一个char之外的字符串。

parts = parts.Select(p => (!string.IsNullOrEmpty(p) && p.Length > 1) ? p.Substring(1) : p).ToList();

查看Substring

this链接

答案 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