web-dev-qa-db-ja.com

(オブジェクトの)リストを(文字列の)リストに変換する

すべてのアイテムを繰り返し処理せずに、c#またはvb.netでList(of Object)List(of String)に変換する方法はありますか? (舞台裏の反復は問題ありません。簡潔なコードが必要です)

更新:最良の方法は、おそらく新しい選択を行うことです

myList.Select(function(i) i.ToString()).ToList();

または

myList.Select(i => i.ToString()).ToList();
67
Geoff Appleford

新しいリストの作成を繰り返すことなしには不可能です。 IListを実装するコンテナでリストをラップできます。

LINQを使用して、次のようなオブジェクトリストからIEnumerable<string>の遅延評価バージョンを取得できます。

var stringList = myList.OfType<string>();
74
Mehrdad Afshari

これはすべてのタイプで機能します。

List<object> objects = new List<object>();
List<string> strings = objects.Select(s => (string)s).ToList();
34

変換の実行方法をさらに制御したい場合は、ConvertAllを使用できます。

var stringList = myList.ConvertAll(obj => obj.SomeToStringMethod());
23
Daniel Schaffer

こんな感じ?

List<object> objects = new List<object>();
var strings = (from o in objects
              select o.ToString()).ToList();
9
ctacke

いいえ-リストの[〜#〜] all [〜#〜]要素を変換する場合は、[〜#〜] all [〜#〜]何らかの方法でそのリストの要素。

反復をさまざまな方法(foreach()......、または.ConvertAll()など)で指定/記述できますが、最終的には、何らかの方法でコードが1つずつ繰り返されます要素と変換します。

マーク

3
marc_s

List(of object)の構築中に文字列変換を行うことはできますか?これは、List(of object)が作成された後にリスト全体を列挙することを避ける唯一の方法です。

1
Ben Robbins