IEnumerable< tek bir madde geçiyor;T>
Ortak bir yol türü IEnumerable<T>
bir parametre bekler yöntemi 4 ** tek bir öğeye geçmek var mı? Dil# çerçeve sürüm 2.0 C.
Ben şu anda bir yardımcı yöntem (. kullanarak Net döküm/bir sürü yardımcı yöntemler ETMENİZ benzer çıkıntı var 2.0,), ama bu sadece aptalca görünüyor:
public static class IEnumerableExt
{
// usage: IEnumerableExt.FromSingleItem(someObject);
public static IEnumerable<T> FromSingleItem<T>(T item)
{
yield return item;
}
}
Diğer taraftan elbette ve List<T>
Array
oluşturmak ve doldurmak için olurdu ve IEnumerable<T>
yerine geçmek.
[Düzenle]Bir uzantı yöntemi olarak adlandırılmış olabilir:
public static class IEnumerableExt
{
// usage: someObject.SingleItemAsEnumerable();
public static IEnumerable<T> SingleItemAsEnumerable<T>(this T item)
{
yield return item;
}
}
Bir şey mi kaçırıyorum?
[Edit2]Bulduk someObject.Yield()
(@Peter'ın dediği açıklamaları aşağıda) en iyi isim bu uzatma yöntemi, esas kısalık, öyle işte birlikte XML açıklama isteyen için yakala:
public static class IEnumerableExt
{
/// <summary>
/// Wraps this object instance into an IEnumerable<T>
/// consisting of a single item.
/// </summary>
/// <typeparam name="T"> Type of the object. </typeparam>
/// <param name="item"> The instance that will be wrapped. </param>
/// <returns> An IEnumerable<T> consisting of a single item. </returns>
public static IEnumerable<T> Yield<T>(this T item)
{
yield return item;
}
}
CEVAP
C# 3.0 Sistem kullanabilir.Seri.Sınıf sayısız:
// using System.Linq
Enumerable.Repeat(item, 1);
Bu senin tek öğe içeren yeni bir IEnumerable oluşturur.
Nasıl bir IEnumerable<T> koleksi...
Bir IEnumerable bir Sözlük yaratmaya&;...
IEnumerable< type T;T>...
CSS liste-her madde için madde işareti...
C# Özgürce Listesi<T> ve IEnumer...