Как отсортировать одну наблюдаемую коллекцию с другой наблюдаемой коллекцией в silverlight?

У меня есть одна строка наблюдаемой коллекции, называемая "A", содержащая некоторые значения. Другая строка наблюдаемой коллекции под названием "B", содержащая некоторые значения.

"A" имеет 13 значений, а "B" имеет 5 значений. "A" содержит значения "B", но в другом порядке. Я хочу, чтобы значения "B" в "A" получили первый приоритет в поле со списком.

Итак, что мне нужно сделать.. напишите некоторый запрос linq. Пожалуйста, дайте несколько идей.

2 ответа

У меня нет моей среды IDE, но что-то вроде этого должно это сделать.

Предполагается, что те же экземпляры существуют в двух коллекциях.

var sortedA = observableA.OrderBy(item=>observableB.Contains(item) ? 0 : 1);

Если они не совпадают с экземплярами, и вы хотели бы сравнить свойство, такое как name, вы также можете сделать.

var sortedA = observableA.OrderBy(item=>observableB.Any(item2 => item2.Name == item.Name) ? 0 : 1);


var a = "1,2,3,4,5,6,7,8,9,10,11,12,13".Split(',').ToList();
var b = "7,8,9,10,11".Split(',').ToList();
var c = a.OrderByDescending(x => b.IndexOf(x));

licensed under cc by-sa 3.0 with attribution.