Definition comparer class, class ItemComparer : IEqualityComparer<XElement> { public bool Equals(XElement x, XElement y) { return x.Attribute("Name").Value == x.Attribute("Name").Value; } public int GetHashCode(XElement obj) { return obj.Attribute("Name").Value.GetHashCode(); } } How to use this one to distinct: public List<string> LoadDistrict(string region) { if (m_DataDoc == null) return null; List<string> list = new List<string>(); try { var query = from r in m_DataDoc.Elements("DashBoardData").Elements("LevelData").Elements("Region").Where(a => a.Attribute("Name").Value.ToLower() == region.ToLower()) select r; foreach (var district in query.Elements("District").Distinct(new ItemComparer())) { list.Add(district.Attribute("Name").Value); } return list; } catch (Exception exp) { MessageBox.Show(exp.Message); return null; } }