2011-01-09 182 views
2

我已經重申了我的消息與明確的問題。比較兩個不同的列表

我有兩個不同的列表。

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

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

我的要求是要實現,應包含基於LINQ的編碼數1,2,3新車名單?

爲了得到這個特定的車,你必須從carListNumber收到正確的車號。

+1

你如何確定你想要的汽車/號碼? – Oded 2011-01-09 11:13:07

+0

我使這個版本更容易爲最終用戶,我會做一些其餘的補充......如果問題發生,我不會再介意添加另一個問題。 – 2011-01-09 11:31:25

回答

0

需要有基於LINQ的 或similiar從車的號碼1號,2 和3的列表。

我該怎麼做才能比較兩個 不同的列表與不同的上下文?

所以,你想從列表中拿一輛車,說寶馬,並找出它的數字?

我真的很難理解你想做什麼。您可以使用索引來處理列表。這會有幫助嗎?

編輯出如下:

終於明白你想要做什麼。你想要開車的順序,還是數字的順序?如果你有寶馬2,奧迪1,你想讓訂單數量爲2,1,或者訂購奧迪寶馬。然後,我會幫與代碼:)

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

如果您需要更多的幫助,可以請你再解釋一下你的問題,而且,你可以請幫一下忙啊,和標誌/贊成票在以前的問題中提供合適的答案

非常感謝!

0

獲取列表< int>的汽車數量從列表<車>請嘗試以下操作:

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

ListsMatches則包含了一個布爾值,如果2相匹配。

0
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

你應該看看LINQ--這可以使用一些LINQ擴展方法以更簡潔的方式完成。 – 2011-01-09 11:38:58

+0

我很瞭解自己的LINQ,但我剛剛醒來,所以這就是我現在可以用我的模糊想法將它們放在一起:-) – Axarydax 2011-01-09 14:23:43

5
carListNumber.SequenceEquals(car1.Select(car=>car.number));