Sadece C# üzerinde bir oneach oneliner olup olmadığını öğrenmek istiyorum, eğer on-lineer (exp) ? then : else
gibi.C# mevcut bir foreach oneliner var mı?
cevap
o zaman yerleşik statik ForEach
yöntemi kullanabilirsiniz dizisi dikkatli davranmalıyız: Bir List<T>
uğraşıyoruz o zaman ForEach
örneği yerleşik yöntemi kullanabilirsiniz
Array.ForEach(yourArray, x => Console.WriteLine(x));
:
yourList.ForEach(x => Console.WriteLine(x));
yerleşik herhangi keyfi IEnumerable<T>
dizisine karşı çalışacağız şey yok, ama sen lüzum düşünürseniz kendi uzantısı yöntemi rulo için yeterli kolay:
yourSequence.ForEach(x => Console.WriteLine(x));
// ...
public static class EnumerableExtensions
{
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
if (source == null) throw new ArgumentNullException("source");
if (action == null) throw new ArgumentNullException("action");
foreach (T item in source)
{
action(item);
}
}
}
foreach
hattı astarları LINQ uzantısı yöntemleri ile elde edilebilir.
yerine: Örneğin:
var result = new List<string>();
foreach (var item in someCollection)
{
result.Add(item.Title);
}
sen olabilir:
var result = someCollection.Select(x => x.Title).ToList();
Tabii, List<>::ForEach
gibi bir şey kullanabilirsiniz:
List<String> s = new List<string>();
s.Add("These");
s.Add("Is");
s.Add("Some");
s.Add("Data");
s.ForEach(_string => Console.WriteLine(_string));
temel fark ise ve operatör arasındaki ? "?" bir ifade üretir. Yani Eğer bunu yapamaz:
var _ = (exp) ? then : else; // ok
ancak bu: Eğer foreach ifadesi böyle bir şey için doğal boşluk haricinde dönebilirsiniz hiçbir NET tipi var olup arıyorsanız Yani
var _ = if (exp) { then; } else { else; }; // error
ama orada boşluk türde hiçbir değerleridir, bu yüzden eşit sadece yazabilirsiniz: bir Birim tipi yerine yalnızca bir değerle yazmaktır boşluğun kullanılan birçok fonksiyonel dilde
foreach (var item in collection) process(item);
. .NET bu taklit ve kendi foreach ifadesini oluşturabilirsiniz: Orada pek Ancak böyle ifadeler için herhangi bir kullanım durumunun mevcut
class Unit
{
public override bool Equals(object obj)
{
return true;
}
public override int GetHashCode()
{
return 0;
}
}
public static class EnumerableEx
{
public static Unit ForEach<TSource>(
this IEnumerable<TSource> source,
Action<TSource> action)
{
foreach (var item in source)
{
action(item);
}
return new Unit();
}
}
.
- 1. C# uygulamasına benzeyen TypeScript'te bir foreach yapısı var mı?
- 2. Java oneliner
- 3. Bir tarih/saatin mevcut olup olmadığını belirleme yolu var mı?
- 4. Mevcut eksenlerden tek bir arsa kaldırmanın bir yolu var mı?
- 5. ASP.NET MVC3 C# - foreach
- 6. C# Foreach XML düğümü
- 7. Java'da mevcut arabirimin C# "açık uygulaması" mı?
- 8. nasıl bir model var bir foreach
- 9. Bir foreach döngüsünde çift sıfır dizin C#
- 10. jQuery mevcut değilse document.ready() öğesini denetlemenin bir yolu var mı?
- 11. TStringGrid - "mevcut/seçili" satırı almanın basit bir yolu var mı?
- 12. Google Android için mevcut herhangi bir form tasarımcısı var mı
- 13. "Eclipse'de -template: foreach" foreach
- 14. Süreçler oluşturulduğunda bir Sistem olayı var mı?
- 15. C# WinForms bir sürgü kontrolü var mı?
- 16. C# tabanlı bir web tarayıcısı var mı?
- 17. C harflerini saymanın bir yolu var mı?
- 18. C++ 'da bir kolaylık kurucu var mı?
- 19. C programlama için bir REPL var mı?
- 20. C için bir wxWidgets çerçevesi var mı?
- 21. C# Grupby Linq ve foreach
- 22. C# için Guava var mı?
- 23. C# sabitlenmiş sabitler var mı?
- 24. C# foreach loop lambda dönüştürmek için yardıma ihtiyacım var
- 25. # İçinde iostream var mı? C
- 26. Foreach
- 27. iPhone Objective-C foreach tasarım
- 28. - Bir fark var mı?
- 29. c/C++ 'da var_dump PHP gibi bir şey var mı?
- 30. c ve C++ prototiplerini karıştırmanın bir yolu var mı?
Bu şeylerin yerleşik olarak bulunmadığı bir garip. Sanırım Python modelini takip edersem, biri yeni bir numaralandırma oluşturmak için 'Seç'i kullanır mı? – Domi