IEnumerable<Contact>
'dan List<Contact>
'a dönüştürmek istiyorum. Bunu nasıl yapabilirim?IEnumerable 'den Listeye Dönüştürme
cevap
Bunu çok basit bir şekilde LINQ kullanarak yapabilirsiniz.
kullanarak bu C# dosyasının en üstünde olduğundan emin olun:
using System.Linq;
Sonra
ToList
uzatma yöntemini kullanın.
Örnek: Eğer IEnumerable<T>
yerine düzenli bir eski System.Collections.IEnumerable
çalışıyoruz
IEnumerable<int> enumerable = Enumerable.Range(1, 300);
List<int> asList = enumerable.ToList();
Bundan ben bir uzantısı yöntemi kullanmak enumerable.Cast<object>().ToList()
kullanabilirsiniz. Uzantı yöntemim öncelikle numaralandırma işleminin boş olup olmadığını ve eğer boş bir liste oluşturduğunu denetler. Bu, açık bir şekilde null'u kontrol etmek zorunda kalmadan bir foreach yapmanıza izin verir. İşte
IEnumerable<string> stringEnumerable = null;
StringBuilder csv = new StringBuilder();
stringEnumerable.ToNonNullList().ForEach(str=> csv.Append(str).Append(","));
uzatma yöntemidir: Burada
çok yapmacık örnektir
public static List<T> ToNonNullList<T>(this IEnumerable<T> obj)
{
return obj == null ? new List<T>() : obj.ToList();
}
Eğer System.Collections.IEnumerable
bir uygulamasını kullanıyorsanız
List<int> list=new List<int>();
IEnumerable<int> enumerable =Enumerable.Range(1, 300);
foreach (var item in enumerable)
{
list.add(item);
}
"AddRange (numaralandırılabilir)" işlevini veya Liste (numaralandırılabilir) yapıcısını kullanmak daha iyi. – QtRoS
başka yolu List
'a dönüştürmek için aşağıdakileri yapabilirsiniz. Aşağıdaki IEnumberable
bir genel List
dönüştürmek için Enumerable.Cast yöntemini kullanır.
//ArrayList Implements IEnumerable interface
ArrayList _provinces = new System.Collections.ArrayList();
_provinces.Add("Western");
_provinces.Add("Eastern");
List<string> provinces = _provinces.Cast<string>().ToList();
Eğer Jenerik sürümünü
IEnumerable<T>
kullanıyorsanız
, dönüşüm yalındır. Her iki jenerik olduğundan, aşağıda gibi yapabilirsiniz
IEnumerable<int> values = Enumerable.Range(1, 10);
List<int> valueList = values.ToList();
Ama IEnumerable
boş olması durumunda bir List
dönüştürmek çalıştığınızda, değer null olamaz diyerek ArgumentNullException
alırsınız
IEnumerable<int> values2 = null;
List<int> valueList2 = values2.ToList();
Bu nedenle,
List
dönüştürmeden önce bir
null
kontrolü yapmak unutmayın.
- 1. UTF8'den ASCII'ye dönüştürme
- 2. Python'da bir Dizgiyi Listeye Dönüştürme
- 3. Char Array'i Java'daki Listeye Dönüştürme
- 4. IEnumerable <IEnumerable <T>'den IEnumerable <T> alın
- 5. Python 'da sözlüğe bir listeye dönüştürme
- 6. Mysql tablolarını latin1'den utf8'ye dönüştürme
- 7. Char ** 'den const char'e örtülü dönüştürme **
- 8. VSr500'den VS2008'ye bir .rptproj dönüştürme
- 9. IEnumerable
- 10. IEnumerable
- 11. IEnumerable
- 12. IEnumerable
- 13. IEnumerable Listesi Nasıl Sıralanır?
- 14. Virgülle Ayrılmış Değerleri Listeye Dönüştürme <Long>
- 15. Linq başka bir listeye
- 16. ReadOnlyCollection IEnumerable
- 17. den
- 18. MySQL'i Dönüştürme PostgreSQL'e Dönüştürme
- 19. Neden IEnumerable <T> IEnumerable öğesinden devralınır?
- 20. GroupCollection'ı Listeye veya IEnumerable'a dönüştürmek mümkün mü?
- 21. IEnumerable <int>
- 22. Büyük veri dosyalarını IEnumerable
- 23. Bir Diziyle IEnumerable Uygulamak
- 24. Datatable IEnumerable uygular? Resimde
- 25. void * 'den struct'e aktarma
- 26. Python'da bir listeye matematiği
- 27. Bir listeye tuples ekleme
- 28. Listeye Öğe Ekleme
- 29. IO çıkışlarını listeye toplama
- 30. Birinci sınıf listeye atla
Çözümünüzün IEnumerable'ın genel sürümü için çalıştığını unutmamak önemlidir. Aşağıdaki kullanıcı turşu yanıtı, jenerik olmayan sürümü ele alır. – mkmurray
"using System.Linq;" için teşekkürler – mili
Teşekkür ederim @mkmurray "turşu" bulmak için dikkat etmeliyim: D – fabriciorissetto