сумма элементов 3-х списков list

Программирование на Юнити.

сумма элементов 3-х списков list

Сообщение labinzevvAlex 03 авг 2021, 15:44

Привет народ! Такой вопрос:
есть List<string> list1; List<string> list2; List<string> list3; int number; string total;
В каждом листе равное кол во элементов (допустим 20)
элементы "А" "Б" "В" в списках они под рандомными индексами
цикл for
string total = list1[i]+ list2[i]+ list3[i]
Если total = "А А А " (или "Б Б Б" или "В В В") то нужно в int number записать "1"
Как можно получить кол-во таких совпадений и записать это кол-во в int number
labinzevvAlex
UNIт
 
Сообщения: 74
Зарегистрирован: 12 июл 2020, 12:18

Re: сумма элементов 3-х списков list

Сообщение samana 03 авг 2021, 16:36

Вы имеете ввиду то, как проверить все варианты, когда во всех трёх списках есть одинаковые элементы?
Может так:
Синтаксис:
Используется csharp
foreach (var item_1 in list_1)
{
    foreach (var item_2 in list_2)
    {
        foreach (var item3 in list_3)
        {
            if (item_1 == item_2 && item_1 == item3)
            {
                number++;
            }
        }
    }
}
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: сумма элементов 3-х списков list

Сообщение labinzevvAlex 03 авг 2021, 17:54

Я не совсем правильно объяснил
Нужно чтобы при одинаковых индексах списков, если есть совпадение элементов, то добавляется 1 в int переменную
и если таких совпадений в списках несколько, то и в int переменную добавляется такое же значение

вот такой цикл я соорудил, но если он в update, то после первого же совпадения, total добавляется до бесконечности, хотя string panel после прохождения цикла становится = " "
В общем основное это получить кол во совпадений, а вот ка не пойму...

for (int i = 0; i < massive1.Count; i++)
{
string panel = massive1[i] + massive2[i];
if (panel == "АА")
{
total++;
panel = "";
}
}
labinzevvAlex
UNIт
 
Сообщения: 74
Зарегистрирован: 12 июл 2020, 12:18

Re: сумма элементов 3-х списков list

Сообщение bwolf88 03 авг 2021, 20:51

Если количество элементов в списках одинаковое и нужно получить количество одинаковых под одним индексом то
Синтаксис:
Используется csharp
int count = list_1.count;
int total = 0;
for (int i = 0; i < count; i++)
{
    if (list_1[i] == list_2[i] && list_1[i] == list_3[i])
    {
        total++;
    }
}

 
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11