2015-07-31 13 views
7

Ho due liste di date. Devo confrontare entrambe le liste e trovare la data mancante. La mia prima lista simile a questa:Come confrontare l'elenco di date in C#?

2015-07-21 
2015-07-22 
2015-07-23 
2015-07-24 
2015-07-25 
2015-07-26 
2015-07-27 

mio secondo elenco assomiglia a questo

2015-07-21 
2015-07-22 
2015-07-23 
2015-07-25 
2015-07-26 
2015-07-27 

devo trovare la data mancante tra la lista di secondo:

Ho provato questo

var anyOfthem = firstList.Except(secondList); 

Ma non ha funzionato. Qualcuno mi può aiutare con questo ?

+0

Devi ottenere le date mancanti? – LzyPanda

+0

Sì, devo ottenere la data che manca @LzyPanda – Priya

+2

. Tranne restituisce tutti i valori tranne quelli che sono in 'secondList'. Quindi è qualcosa di completamente diverso da quello che vuoi. –

risposta

10

sembra che si può utilizzare i metodi .Except().Union():

 string[] array1 = 
     { 
     "2015-07-21", 
     "2015-07-22", 
     "2015-07-23", 
     "2015-07-24", 
     "2015-07-25", 
     "2015-07-26",    
     }; 

     string[] array2 = 
     { 
     "2015-07-21", 
     "2015-07-22", 
     "2015-07-23",    
     "2015-07-25", 
     "2015-07-26", 
     "2015-07-27" 
     }; 

     var result = array1.Except(array2).Union(array2.Except(array1)); 

     foreach (var item in result) Console.WriteLine(item); 

Uscita: "2015-07-24", "2015-07-27",

3
string[] array1 = 
{ 
    "2015-07-21", 
    "2015-07-22", 
    "2015-07-23", 
    "2015-07-24", 
    "2015-07-25", 
    "2015-07-26",    
}; 

string[] array2 = 
{ 
    "2015-07-21", 
    "2015-07-22", 
    "2015-07-23",    
    "2015-07-25", 
    "2015-07-26", 
    "2015-07-27" 
}; 

var common = list1.Intersect(list2); 
var anyOfThem = list1.Except(common).Concat(list2.Except(common)); 

foreach (var date in anyOfThem) 
    Console.WriteLine(date); 

// 2015-07-24 
// 2015-07-27 
0

Devi controllare se una lista contiene i valori della altro elenco:

var anyOfthem = firstList.Where(x => !secondList.Contains(x)); 
0

speranza questo è esattamente ciò che siete in cerca di:

var notamatch= firstList.Where(x => !anyOfthem.Any(y => y.yourseconddatename== x.yourfirstdatename));