Diberikan kelas:
class foo
{
public string a = "";
public int b = 0;
}
Kemudian daftar umum dari mereka:
var list = new List<foo>(new []{new foo(), new foo()});
Jika saya menetapkan beberapa properti di dalam List<T>
ForEach()
metode berikut , apakah ada cara yang lebih sederhana untuk melakukannya di bawah ini? Mudah-mudahan saya sedikit tebal.
// one property - easy peasy
list.ForEach(lambda => lambda.a="hello!");
// multiple properties - hmm
list.ForEach(lambda => new Action(delegate() { lambda.a = "hello!"; lambda.b = 99;}).Invoke());
Sunting: Pikir ForEach()
adalah metode ekstensi LINQ, padahal sebenarnya bagian dari List<T>
ups!
List<T>
dan bukan LINQ. Juga, Anda dapat membuat daftar Anda denganvar list = new List<foo>() { new foo(), new foo() };
Jawaban:
Yang perlu Anda lakukan adalah memasukkan beberapa tanda kurung sehingga metode anonim Anda dapat mendukung banyak baris:
sumber
Metode anonim adalah teman Anda
MSDN:
sumber
Menjadi
Tentu saja Anda juga dapat menetapkannya saat Anda membuat daftar seperti:
sumber
sumber
Sejujurnya, Anda tidak perlu menggunakan List.ForEach di sini:
sumber