1

我有一个从第 3 方返回给我的列表。列表中的每个字符串都以“mph”结尾,我想删除“mph”。显而易见的答案是遍历列表,但我不知道是否有更有效的方法来做到这一点。

谢谢。

4

7 回答 7

5

总之,没有。必须通过列表才能修改它。循环可能是最有效的for方式,但不一定是最简洁的

于 2013-02-23T17:07:47.053 回答
4

您必须遍历列表才能触摸每个项目并进行更改。

最简单的方法是通过 linq:

  var originallist = new List<string> { "50mph", "35mph", "100mph" };
  var newlist = list.Select(s => s.Substring(0, s.Length - 3));
于 2013-02-23T17:09:25.297 回答
3

您可以使用 LINQ 代替foreach循环:

list.Select( s => s.Substring(0, s.Length - 3) )
于 2013-02-23T17:10:53.480 回答
1

这会起作用

List<string> newList = new List<string>();

mylist.ForEach((item)=>
  {
    item=item.Replace("mph",""); 
    newlist.Add(item);
  });
于 2013-02-23T19:31:19.400 回答
1

您可以为此目的使用 LINQ。像这样的东西可能有效:

var noMph = theList.Select(p => p.Replace("mph", "").ToList();
于 2013-02-23T17:09:07.333 回答
1

简单的答案:你不能


您必须以一种或另一种方式执行迭代。

它可能是:

foreach
for
List.ForEach
于 2013-02-23T17:09:27.670 回答
1

好吧,你可以写

mylist.Select(s=>s.Substring(0, s.Length-3));//Can add .ToList() here

但这是使用循环。您至少不必编写 foreach :)

于 2013-02-23T17:10:19.013 回答