簡體   English   中英

實現C#Linq Distinct幫助以便對表中的列進行分組

[英]Implement C# Linq Distinct Help in order to group a column in table

private void GetRecDept() 
{
    cmbDept.Items.Clear();
    ListViewMeasurements.Items.Clear();
    SFCDataContext SFC = new SFCDataContext();
    try
    {
        var query = (from i in SFC.Systems_SettingsMeasurements
                     orderby i.RowID descending
                     select new { 
                        RowID = i.RowID,
                        Measure = i.Measurement,
                        Target = i.TargetPercentage,
                        Dept = i.Department_ID                                
                     });
        foreach (var w in query) 
        {
           ListViewItem List = new ListViewItem(w.RowID.ToString());
           List.SubItems.Add(w.Measure);
           List.SubItems.Add(string.Format("{0:n2}", w.Target));
           List.SubItems.Add(w.Dept);
           ListViewMeasurements.Items.AddRange(new ListViewItem[] { List });
        }
        foreach (var r in query) 
       {
            cmbDept.Items.Add(r.Dept.Distinct());
       }
   }
   catch (Exception ex)
   { 
       MessageBox.Show(ex.Message.ToString()); 
   }
}                

它在cmbDept.Items.Add()上的輸出顯示了這種字符串System.Linq.Enumerable+<DistinctIterator>d__7a 1 [System.Char]`與listview不同,如何將其轉換為用戶可讀的字符串類型在一個組合框中。

嘗試這個:

var distinctDept = query.Select(x=>x.Dept).Distinct().ToArray();
cmbDept.Items.AddRange(distinctDept)

關於你的問題,當你使用cmbDept.Items.Add(r.Dept.Distinct());時, Dept是字符串cmbDept.Items.Add(r.Dept.Distinct()); 添加的項目是IEnumerable<char> ,當然它無法按預期顯示,在顯示IEnumerable<char>之前調用ToString()並按照您的描述為您提供結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM