Элементы матча между 2 коллекциями с Linq в c#

у меня есть вопрос о том, как сделать общую программную задачу в linq.

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

например:

        string[] collection1 = new string[] { "1", "7", "4" };
        string[] collection2 = new string[] { "6", "1", "7" };

        foreach (string str1 in collection1)
        {
            foreach (string str2 in collection2)
            {
                if (str1 == str2)
                {
                    // DO SOMETHING EXCITING///
                }
            }
        }

Это может, очевидно, быть достигнуто, используя код выше, но что я задаюсь вопросом, есть ли быстрый и опрятный способ, которым Вы можете сделать это с LinqtoObjects?

Спасибо!

21
задан Grant 25 January 2010 в 02:03
поделиться

2 ответа

я думаю, что

if IsNotNull(value) {

эквивалентно

if not value:

для последовательностей. поэтому я думаю, что функция не нужна у питона.

-121--3464987-

Вы не должны делать это в функции. Вместо этого следует использовать:

if someStringOrNone:
-121--3464984-

Да, пересечение - образец кода для иллюстрации.

string[] collection1 = new string[] { "1", "7", "4" };
string[] collection2 = new string[] { "6", "1", "7" };

var resultSet = collection1.Intersect<string>(collection2);

foreach (string s in resultSet)
{
    Console.WriteLine(s);
}
27
ответ дан 29 November 2019 в 20:39
поделиться

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

var query = 
   from str1 in collection1 
   join str2 in collection2 on str1 equals str2
   select str1;

foreach (var item in query)
{
     // do something fun
     Console.WriteLine(item);
}
13
ответ дан 29 November 2019 в 20:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: