ForEach'ta bir lambda ifadesinde koşullu bir operatöre izin verilmiyor mu?Koşullu operatörü lambda ifadesinde, genel bir Listede ForEach() içinde kullanma?
List<string> items = new List<string>{"Item 1", "Item 2", "Item I Care About"};
string whatICareAbout = "";
// doesn't compile :(
items.ForEach(item => item.Contains("I Care About") ?
whatICareAbout += item + "," : whatICareAbout += "");
Derleme hatası -> da işe yaramazsa normal kullanmaya çalışıyor
"Yalnızca atama, çağrı Artırma, azaltma ve yeni nesne ifadeleri açıklamada olarak kullanılabilir":
// :(
items.ForEach(item => if (item.Contains("I Care About")) {whatICareAbout += item + ", ";}
Sadece olanaklı değil misiniz?
Sheesh Yanıtlarımdan çok etkilendim, hepsi birkaç dakika içinde soruyorum :) Sanırım @SLaks sorumu yanıtlıyor, ama Agrega() aklımı uçuruyor! :) Tekrar herkese teşekkürler :) – Jamezor
Bir koşullu işleç türü olarak bir dize ifadesi vardı ve .ForEach() yönteminiz için bir ifade gerekiyordu. Bu yüzden derleme hatası vardı. –
@Roman - Şimdi anladım! Bence bir? x: y (a) {x} else {y} için kısa el olarak değil ama? Bu durumda bir dize olan x ve y değerini döndürür ... – Jamezor