Пересечение массивов как реализовать?

  • Автор темы Автор темы marazmatik
  • Дата начала Дата начала

marazmatik

Client
Регистрация
24.01.2013
Сообщения
90
Реакции
9
Баллы
8
Очень часто бывает нужна данная функция, из того что есть с экшене работы с массивами нет нужного, в JS и C# не секу, есть ли функция готовая? аналог в php - array_diff
 
C#:
Развернуть Свернуть Копировать
// Assign two arrays.
int[] array1 = { 1, 2, 4 };
int[] array2 = { 2, 3, 4 };

// Call Intersect extension method.
var intersect = array1.Intersect(array2);

foreach (int value in intersect)
{
    // return value;
}

http://msdn.microsoft.com/ru-ru/library/bb460136(v=vs.110).aspx
 
Например я создал 3 списка, list1,list2,list3 в проекте, вставил экшн c# и написал вот такое:
Код:
Развернуть Свернуть Копировать
string list1 = project.Lists["list1"];
string list2 = project.Lists["list2"];
string intersect = list1.Intersect(list2);
project.Lists["list3"]=intersect;
т.е. list3 у меня это результат, но проект не работает
 
Неудивительно))))
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["list1"];
var list2 = project.Lists["list2"];
var intersect = list1.Intersect(list2).ToList();
foreach(string data in intersect)
{
    project.Lists["list3"].Add(data);
}
Или так вроде тоже подойдет)
Код:
Развернуть Свернуть Копировать
var list1 = project.Lists["list1"];
var list2 = project.Lists["list2"];
project.Lists["list3"] = list1.Intersect(list2).ToList();
 
Ага все работает, первый вариант, второй нет. Спасибо!)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)