0

私は以下のようなクエリを持っています:`テーブル

  1. ロンドンフラット
  2. ロンドンフラット
  3. ロンドンハウス
  4. パリフラット
  5. パリフラット
  6. パリハウス
  7. パリハウス`

これをlinqのオブジェクトの下に変換しようとしています。誰か助けてください。

 public class BrowseModel
{
    public string TownName { get; set; }

    public int FlatCount { get; set; }

    public int HouseCount { get; set; }

}

結果は次のようになる必要があります。

  1. ロンドン2フラット1ハウス
  2. パリ2フラット2戸
4

1 に答える 1

0

こんにちは私があなたの質問を間違って理解していないなら、あなたはこのようにそれを試すことができます

    public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
        //Ignore above code
        List<Table> list = new List<Table>();
        //Suppose this what you db returns
        list.Add(new Table() { TownName = "London", HouseType = HouseType.Flat });
        list.Add(new Table() { TownName = "London", HouseType = HouseType.Flat });
        list.Add(new Table() { TownName = "London", HouseType = HouseType.House });
        list.Add(new Table() { TownName = "Paris", HouseType = HouseType.Flat });
        list.Add(new Table() { TownName = "Paris", HouseType = HouseType.Flat });
        list.Add(new Table() { TownName = "Paris", HouseType = HouseType.House });
        list.Add(new Table() { TownName = "Paris", HouseType = HouseType.House });

        var result = list.GroupBy(o => o.TownName).Select(s => new BrowseModel() { TownName = s.First().TownName, FlatCount = s.Where(f => f.HouseType == HouseType.Flat).Count(), HouseCount = s.Where(h => h.HouseType == HouseType.House).Count() }).ToList();
    } 
}

public class BrowseModel
{
    public string TownName { get; set; }

    public int FlatCount { get; set; }

    public int HouseCount { get; set; }

}

public class Table
{
    public string TownName { get; set; }
    public HouseType HouseType { get; set; }
}

public enum HouseType
{ 
    House=0,
    Flat=1
}

これがあなたにアイデアを与えることを願っています。

于 2013-02-13T13:31:56.967 に答える