SORU
29 Temmuz 2009, ÇARŞAMBA


Seri Listesinden Çoklu seçim Alanları

ASP.NET C# ben bir referans

public struct Data
{
    public int item1;
    public int item2;
    public int category_id;
    public string category_name;
}

ve bunların bir Listesi var. Category_id seçin ve category_name, FARKLI ve category_name bir ORDERBY nihayet hareket etmek istiyorum.

Ben şimdi ne var burada:

List<Data> listObject = getData();
string[] catNames = listObject
                    .Select(i=> i.category_name)
                    .Distinct()
                    .OrderByDescending(s => s)
                    .ToArray();

Bu tabii ki sadece kategori adını alır. Benim soru, nasıl birden fazla alanı ve veri yapısı, ben bu dükkanda ne olacak (string[])?

EDİT

Yapılar listesi kullanarak taş koymak değil. Eğer benim desteğim veri yapısı seçer kolaylaştırmak için (bu çok yazacağım) değiştirmek için tavsiye ederim varsa seve seve tavsiyelerini almak isterim.

CEVAP
29 Temmuz 2009, ÇARŞAMBA


Anonim türleri kuvvetle daha sonra kodunuzda yazılan veri yapılarına keyfi alanları seçmek için izin:

var cats = listObject
    .Select(i => new { i.category_id, i.category_name })
    .Distinct()
    .OrderByDescending(i => i.category_name)
    .ToArray();

(Görünüşe göre) daha sonra kullanmak için saklamak gerekir, çünkü, GroupBy operatörü kullanabilirsiniz:

Data[] cats = listObject
    .GroupBy(i => new { i.category_id, i.category_name })
    .OrderByDescending(g => g.Key.category_name)
    .Select(g => g.First())
    .ToArray();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jejoab

    Jejoab

    4 NİSAN 2008
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • ThePhestor

    ThePhestor

    22 Mart 2011