using System.Collections.Generic;
public int ElementID { get; set; }
public string ElementName { get; set; }
public string ElementValue { get; set; }
public static void Main()
var list = new List<MyModel>();
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name1", ElementValue = "Id1Name1Value1"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name1", ElementValue = "Id1Name1Value2"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name2", ElementValue = "Id1Name2Value1"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name3", ElementValue = "Id1Name3Value1"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name3", ElementValue = "Id1Name3Value2"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name4", ElementValue = "Id1Name4Value1"});
list.Add(new MyModel {ElementID = 1, ElementName = "Id1Name4", ElementValue = "Id1Name4Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name1", ElementValue = "Id2Name1Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name1", ElementValue = "Id2Name1Value2"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name2", ElementValue = "Id2Name2Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name3", ElementValue = "Id2Name3Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name3", ElementValue = "Id2Name3Value2"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name4", ElementValue = "Id2Name4Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name5", ElementValue = "Id2Name5Value1"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name5", ElementValue = "Id2Name5Value2"});
list.Add(new MyModel {ElementID = 2, ElementName = "Id2Name5", ElementValue = "Id2Name5Value3"});
var selectedGroups = list.GroupBy(i =>
Where(g => g.Select(i => i.ElementValue).Distinct().Count() > 1);
foreach (var group in selectedGroups)
Console.WriteLine($"{group.Key.ElementID} {group.Key.ElementName}");