Member 11444399 Ответов: 1

Как расположить ключ с многозначным значением в C#


У меня один использовать класс, который имеет имя и содержание.Я должен удалить дубликат имени.Выход должен быть баран и его содержание кол-подобное для всех. Не хочу повторять имя каждый раз.

       List<Employ> emp = new List<Employ>();
            Employ e = new Employ();
            emp.Add(new Employ { Name = "Ram", Contect = "5454454" });
            e.Name = "Ravi";
            e.Contect = "458794";
            emp.Add(new Employ { Name = "Ravi", Contect = "4578456" });

            e.Name = "jack";
            e.Contect = "564545655";
            emp.Add(new Employ { Name = "Jack", Contect = "457844544" });
            e.Name = "Ram";
            e.Contect = "457875";
            emp.Add(new Employ { Name = "Ram", Contect = "45784554" });
            e.Name = "Ravi";
            e.Contect = "5467846554";
            emp.Add(new Employ { Name = "Ravi", Contect = "5784545" });
            e.Name = "jack";
            e.Contect = "457855664";
            emp.Add(new Employ { Name = "Jack", Contect = "4547787787" });

}
 class Employ
    {
       public string Name { get; set; }
        public string Contect { get; set; }


   
    }


Что я уже пробовал:

Я удалил дубликат записи имени
public static  void RemoveDuplicate(List<Employ> name) {
    List<string > str=null;
    str = name.Select(x => x.Name).Distinct().ToList();

но понятия не имею, как связаться с ценностью в этом деле

1 Ответов

Рейтинг:
2

FranzBe

1) переменная e назначается несколько раз, но никогда не используется?

2) я бы начал так

void Main()
{
	List<Employ> emp = new List<Employ>();
	emp.Add(new Employ { Name = "Ram", Contect = "5454454" });
	emp.Add(new Employ { Name = "Ravi", Contect = "4578456" });
	emp.Add(new Employ { Name = "Jack", Contect = "457844544" });
	emp.Add(new Employ { Name = "Ram", Contect = "45784554" });
	emp.Add(new Employ { Name = "Ravi", Contect = "5784545" });
	emp.Add(new Employ { Name = "Jack", Contect = "4547787787" });

    //emp.Dump(); .Dump() is a linqpad command
	
	var employesDistinctByName = emp.GroupBy(e => e.Name).Select(y => y.First());
	
	//employesDistinctByName.Dump();
}


таким образом, вы избавляетесь от двойных имен, не разрушая список. Однако вы не указали, как обрабатывать комбинацию Name и Contect (если имя одно и то же, то Contect другой, как это обрабатывать)