1

サードパーティから返されたリストがあります。リスト内の各文字列は「mph」で終わりますが、「mph」を削除したいと思います。明らかな答えは、リストを foreach することですが、より効率的な方法があるかどうかはわかりませんでした。

ありがとう。

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

foreachループの代わりに LINQ を使用できます。

list.Select( s => s.Substring(0, s.Length - 3) )
于 2013-02-23T17:10:53.480 に答える
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 に答える
1

これはうまくいきます

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

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