fellanmorgh Ответов: 2

Проверьте, совпадают ли индексы в двух списках.#


Привет,

Я работаю над сравнением двух одинаковых индексов. В основном я объявляю два списка.

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

List<string> names = new List<string>() { "Bob", "Lara", "Andrew", "Adam" };
List<string> surnames = new List<string>() { "Dar", "Tars", "Vernik", "Smith" };



и я генерирую случайное число имен или фамилий и отображаю его:

List<String> fullnames = names.Concat(surnames).ToList();
Random rand = new Random();
String randomname = fullnames[rand.Next(fullnames.Count)];

Console.WriteLine(randomname);


Мне было интересно, как сравнить индекс в обоих списках, которые были сгенерированы случайным образом.

Например следующее случайное имя Боб

Так что если
индекс 1 в именах = Боб
И
индекс 1 в фамилиях = Dar

сделать нечто....

Любая помощь будет оценена по достоинству

2 Ответов

Рейтинг:
2

Suvendu Shekhar Giri

Я не могу правильно понять, как/почему вы генерируете списки, но наличие метода что-то вроде следующего может помочь, если вы пытаетесь получить непохожие элементы в списке, я считаю-

public IEnumerable<string> GetDifferences(List<string> list1, List<string> list2)
{
    for (int i = 0; i < list1.Count; i++)
    {
        if (list1[i] != list2[i]) yield return list1[i];
    }
}


ссылка: c# - сравнение двух списков<string> По значению и индексу - переполнение стека[^]

В соответствии с вашим требованием, вместо того чтобы возвращать товар, вы можете написать необходимую логику в блоке IF.

Надеюсь, это поможет :)


Рейтинг:
14

Karthik_Mahalingam

если бы я правильно понял ваше требование, то это помогло бы, и я думаю, что нет смысла сравнивать два списка, данные всегда разные.

List<string> names = new List<string>() { "Bob", "Lara", "Andrew", "Adam" };
           List<string> surnames = new List<string>() { "Dar", "Tars", "Vernik", "Smith" };

           List<String> fullnames = names.Concat(surnames).ToList();
           Random rand = new Random();
           String randomname = fullnames[rand.Next(fullnames.Count)];

           int index = names.IndexOf(randomname); // check randomname is present in names list
           if (index == -1)  // not  in names list
               index = surnames.IndexOf(randomname);  // index of the random name in the surnames list

           string name = names[index];  // Bob
           string surname = surnames[index];// Dar


fellanmorgh

Круто, искал что-то в этом роде. Спасибо за вашу помощь. :)

Karthik_Mahalingam

добро пожаловать :)

Suvendu Shekhar Giri

Великий! 5Ed!

Karthik_Mahalingam

Спасибо SSG