单列:
- MyDataContext db = new MyDataContext();
- var result = (from p in db.t_Personnel
- select p.FirstName).Distinct();
- DataTable dt = new DataTable("SingleDistinct");
- dt.Columns.Add("FirstName");
- foreach (var item in result)
- {
- DataRow dr = dt.NewRow();
- dr["FirstName"] = item.ToString();
- dt.Rows.Add(dr);
- }
- dataGridView1.DataSource = dt;
多列:
- using System.Data;
- using System.Collections;
- namespace Test_Distinct
- {
- public class PersonDataRowComparer : IEqualityComparer<t_Personnel>
- {
- public bool Equals(t_Personnel t1, t_Personnel t2)
- {
- return (t1.ID == t2.ID && t1.FirstName == t2.FirstName);
- }
- public int GetHashCode(t_Personnel t)
- {
- return t.ToString().GetHashCode();
- }
- }
- }
- MyDataContext db = new MyDataContext();
- IEnumerable distinctRows = db.t_Personnel.ToList().Distinct(new PersonDataRowComparer());
- DataTable dt = new DataTable("SingleDistinct");
- dt.Columns.Add("ID");
- dt.Columns.Add("FirstName");
- dt.Columns.Add("LastName");
- foreach (var item in distinctRows)
- {
- DataRow dr = dt.NewRow();
- dr["ID"] = item.ID;
- dr["FirstName"] = item.FirstName;
- dr["LastName"] = item.LastName;
- dt.Rows.Add(dr);
- }
- dataGridView1.DataSource = dt;
如果是对于自定义类,此处要注意:
public class PersonDataRowComparer : IEqualityComparer <类名>
http://msdn.microsoft.com/en-us/library/bb338049.aspx
参考: http://bbs.csdn.net/topics/390133561