Лямбда, где идентификатор не существует в другом списке - PullRequest
0 голосов
/ 08 октября 2018

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

List<Int64> Listofid;
var filteredlist = curProjArea.Project.ForEach(x => {x.ProjectId = (where 
 project id does not exist in Listofid) });

Возможно ли это?

Ответы [ 5 ]

0 голосов
/ 08 октября 2018

Просто отрицайте .Contains в списке, для которого вы хотите его исключить.

var filteredList = curProjArea.Project.Where(a => !Listofid.Contains(a.ProjectId));

Демонстрация в скрипте Dotnet

0 голосов
/ 08 октября 2018

Вы можете отфильтровать проекты в предложении Where:

List<Int64> Listofid;
var filteredlist = curProjArea.Project.Where(x => !Listofid.Contains(x.ProjectId));
0 голосов
/ 08 октября 2018
int[] values1 = { 1, 2, 3, 4 };

// Contains three values (1 and 2 also found in values1).
int[] values2 = { 1, 2, 5 };

// Remove all values2 from values1.
var result = values1.Except(values2);

// Show.
foreach (var element in result)
{
    Console.WriteLine(element);
}

От: https://www.dotnetperls.com/except

0 голосов
/ 08 октября 2018

Я думаю, это полезно для вас

List<Int64> Listofid = new List<Int64>() { 5, 3, 9, 7, 5, 9, 3, 7 };
List<Int64> filteredlist = new List<Int64>()  { 8, 3, 6, 4, 4, 9, 1, 0 };
List<Int64> Except = filteredlist.Except(Listofid).ToList();
Console.WriteLine("Except Result");
foreach (int num in Except)
{
    Console.WriteLine("{0} ", num); //Result =  8,6,4,1,0
}
0 голосов
/ 08 октября 2018
List<Int64> Listofid;
var filteredlist = curProjArea.Project.Where(x =>  !Listofid.Contains(x.ProjectId)).ToList();

Попробуйте один раз

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