Проверьте значение в другом списке, используя C # - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть массив со 112 элементами (номера предметов).У меня также есть список, содержащий 47 элементов (номера элементов)

Теперь я хочу проверить, существует ли в списке из 47 элементов одно из номеров элементов в массиве из 112 элементов.Если он не существует, я сделаю действие.

Вот мой код:

   for(var i = 0; i < value.Count(); i++) //Value contains 112
    {
        //Response contains 47 elements
        if(!response.Any(x => x.Vo.Item_No == Int32.Parse(value[i])))
        {
            modelBank.Add(new ModelBank { Item_No = value[i].ToString(), Item_Type = "ART", SameAs = "", Status = "3D Missing" });
        }
    }

Это добавит только 2 объекта в мой список моделей банка.Я хочу добавить 65 объектов, потому что 65 отсутствует.

Я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Ваши данные явно не соответствуют вашим ожиданиям, поскольку следующий код работает должным образом, то есть он добавляет 65 значений к modelBank:

int[] value = Enumerable.Range(1, 112).ToArray();
int[] response = Enumerable.Range(1, 47).ToArray();
List<int> modelBank = new List<int>();
for (var i = 0; i<value.Length; i++)
{
    if (!response.Any(x => x == value[i]))
    {
        modelBank.Add(value[i]);
    }
}

Другими словами, это должно работать:

var modelBank = value.Where(x=> !response.Any(y => y.Vo.Item_No == Int32.Parse(x)).ToList();
0 голосов
/ 14 декабря 2018

Поскольку оба элемента массива и списка имеют одинаковый тип, вы можете использовать метод List.Contains, чтобы проверить, существует ли он.

foreach(var item in value)
{
    if(!response.Contains(item))
    {
        //Do your action
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...