1

私はラムダ式に慣れていないので、1時間から実験してきました。

私は一般的なリストを持っています-List<KeyValuePair<int, string>> 基本的にキーを持っています

と値のペア。ラムダ式を使用してリストアイテムを印刷しようとしています。誰でもできますか

Lambda式を使用して次のforeachステートメントを翻訳するのを手伝ってください。

foreach(KeyValuePair<int, string> kvp in list)
{
    Console.WriteLine(kvp.Key.ToString() + " ----> " + kvp.Value.ToString());
}
4

3 に答える 3

2

ジェネリックConverter(TInput, TOutput)デリゲートによって LINQ 式をカプセル化します。

Converter<List<KeyValuePair<int, string>>, string> converter = (input) =>
    {
        return input.Select(i => i.Key + " --> " + i.Value)
                    .Aggregate((a, n) => a + Environment.NewLine + n);
    };

使用法:

string output = converter(items);

テストデータセット:

var items = new List<KeyValuePair<int, string>>
    {
            new KeyValuePair<int, string>(1, "111"),
            new KeyValuePair<int, string>(2, "222"),
            new KeyValuePair<int, string>(3, "333"),
    };

出力:

1 --> 111
2 --> 222
3 --> 333
于 2012-04-23T14:32:02.340 に答える
1

リストで Foreach メソッドを使用する

Array.ForEach(list.ToArray(), kvp=> Console.WriteLine(kvp.Key.ToString() 
+ " ----> " + kvp.Value.ToString()));
于 2012-04-23T18:43:37.627 に答える
1

自分でこれを理解できてよかったです:)

list.ForEach(item => Console.WriteLine(item.Key.ToString()  + " ----> " + item.Value.ToString()));

list: トラバースするリストの名前です

list<string> names=new list<string>{"name1","name2","name3"}; 
names.ForEach(name=>Console.WriteLine(name)); // write names to the console
console.Readline(); // wait on console until input
于 2012-04-23T14:36:30.433 に答える