Сравните два разных списка - PullRequest
2 голосов
/ 09 января 2011

Я перефразировал свое сообщение явным вопросом.

У меня есть два разных списка.

List<Car> car = GetCars();
List<int> carListNumber = new List<int> { 1, 2, 3};

public Car
{
    public int number
    public string color
    public string brand
}

Мой запрос заключается в создании нового списка автомобилей, который должен содержать число 1,2,3 на основе кодирования LinQ? Чтобы получить этот конкретный автомобиль, вы должны получить правильный номер автомобиля из carListNumber.

Ответы [ 4 ]

5 голосов
/ 09 января 2011
carListNumber.SequenceEquals(car1.Select(car=>car.number));
0 голосов
/ 09 января 2011

Нужно иметь список из числа 1, 2 и 3 из номера автомобиля на основе LinQ или похож.

Как мне сделать сравнение двух другой список с другим контекстом?

То есть вы хотите взять из списка автомобиль, скажем, BMW, и узнать его номер?

Мне действительно трудно понять, что ты хочешь делать. Вы можете обратиться к списку с индексом. Это поможет?

РЕДАКТИРОВАТЬ ниже:

Наконец понял, что ты хочешь сделать. Вы хотите, чтобы порядок автомобилей был за рулем, или порядок номеров? Если у вас есть BMW2, Audi1, вы хотите, чтобы порядковый номер был 2, 1 или для автомобиля был Audi, BMW. Тогда я помогу с кодом:)

List<Car> car1 = GetCars1();
int number = car1.IndexOf(//car//);

Если вам нужна дополнительная помощь, не могли бы вы еще раз объяснить свой вопрос, а также не могли бы вы оказать нам большую услугу и отметить / проголосовать подходящими ответами на свои предыдущие вопросы.

Большое спасибо!

0 голосов
/ 09 января 2011
bool listsAreTheSame(List<Car> cars, List<int> numbers){
  if(cars.Count() != numbers.Count())
    return false;
  for(int  i = 0; i < cars.Count(); i++){
    if(cars[i].number != numbers[i])
      return false;
    }
  return true;
}
0 голосов
/ 09 января 2011

Чтобы получить список номеров автомобилей из списка , попробуйте следующее:

var listOfCarNumbers = car1.Select(car=>car.number).ToList();
var listsMatches = listOfCarNumbers.TrueForAll(carListNumber.Contains) && listOfCarNumbers.TrueForAll(carListNumber.Contains);

ListsMatches тогда содержит логическое значение, если 2 совпадают.

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