Во-первых, вы хотите использовать Where
для фильтрации одной из коллекций, условие является довольно простой, другой список содержит его! Таким образом, вы начинаете что-то вроде:
IEnumerable<int> matches = firstCollection.Where(i => secondCollection.Contains(i));
Обратите внимание, что этот алгоритм немного ... inefficent (O (N^2)), так как вы должны потенциально проходить через все secondCollection для каждого элемента в firstCollection. Тем не менее, он будет работать для небольших наборов.
Еще лучше было бы использовать Intersect
, который делает всю эту работу за вас (и, как правило, O (2n) для загрузки!) :) (спасибо @ScottChamberlain)
IEnumerable<int> matches = firstCollection.Intersect(secondCollection);
В обоих случаях я m, предполагая, что n примерно одинаково в обоих списках.
Теперь вам нужно преобразовать эту коллекцию в текст. String.Join
здесь очень полезен, так как он будет принимать каждый элемент коллекции, вызовите ToString
, чтобы преобразовать его в строку и разделить их на строку по нашему выбору! Что-то вроде:
resultLabel.Text = String.Join(",", matches);
Вы имеете в виду любые цифры, которые находятся в обоих списках? – BradleyDotNET
нет, я хочу писать только те же номера в двух списках. – Gvep
Не могли бы вы привести пример? – BradleyDotNET