c# - Lambda expression not return correct result when using All() -


i have class:

public class change() {     public int id {get; set;}     public decimal price {get; set;} } 

and have 2 lists oldprices , newprices. both lists contain same items albeit different instances.

some items in newprices have different prices, list of changed prices i'm doing:

var list = newprices              .where(x => oldprices.all(p => p.price != x.price))              .todictionary(x => x.id, x => x.price); 

this expression should correct list empty though there changes.

what missing?

enumerable.all returns true if conditions true. that's not want check. want new-prices differ old-prices.

you have join both lists id first able compare prices:

var joined = np in newprices              join op in oldprices              on np.id equals op.id              np.price != op.price              select np; var newpricesbyid = joined.todictionary(p => p.id, p => p.price); 

Comments

Popular posts from this blog

gridview - Yii2 DataPorivider $totalSum for a column -

java - Suppress Jboss version details from HTTP error response -

Sass watch command compiles .scss files before full sftp upload -