【发布时间】:2013-02-23 17:06:20
【问题描述】:
我有一个从第 3 方返回给我的列表。列表中的每个字符串都以“mph”结尾,我想删除“mph”。显而易见的答案是遍历列表,但我不知道是否有更有效的方法来做到这一点。
谢谢。
【问题讨论】:
-
不管怎样,你必须执行一次迭代!
标签: c# string foreach ienumerable
我有一个从第 3 方返回给我的列表。列表中的每个字符串都以“mph”结尾,我想删除“mph”。显而易见的答案是遍历列表,但我不知道是否有更有效的方法来做到这一点。
谢谢。
【问题讨论】:
标签: c# string foreach ienumerable
总之,不。 有些东西 必须通过列表才能修改它。 for 循环可能是最有效的方法,但不一定是最简洁的
【讨论】:
您必须遍历列表才能触摸每个项目并进行更改。
最简单的方法是通过 linq:
var originallist = new List<string> { "50mph", "35mph", "100mph" };
var newlist = list.Select(s => s.Substring(0, s.Length - 3));
【讨论】:
您可以使用 LINQ 代替 foreach 循环:
list.Select( s => s.Substring(0, s.Length - 3) )
【讨论】:
您可以为此目的使用 LINQ。这样的事情可能有效:
var noMph = theList.Select(p => p.Replace("mph", "").ToList();
【讨论】:
for 循环更“有效”。事实上,它可能效率较低。
您必须以一种或另一种方式执行迭代。
可能是:
foreach
for
List.ForEach
【讨论】:
你可以写
mylist.Select(s=>s.Substring(0, s.Length-3));//Can add .ToList() here
但那是使用循环。您至少不必编写 foreach :)
【讨论】:
substring 修复为Substring :)
这会起作用
List<string> newList = new List<string>();
mylist.ForEach((item)=>
{
item=item.Replace("mph","");
newlist.Add(item);
});
【讨论】: