LINQ How to force request to implement?

Say I have a simple LINQ extenstion:

var filtered = data.Where(i => i.Count > 0); 

I know that this will not be evaluated unless I start using the ie filter

 foreach(DataItem i in filtered) ... 

However, I need to create a cloned version of data and release the data as soon as possible. data can be changed in another thread, so I want to get an immediate snapshot.

How can I force filtered ?

+4
source share
3 answers
 var filtered = data.Where(i => i.Count > 0).ToArray(); // or var filtered = data.Where(i => i.Count > 0).ToList(); 
+11
source

To get a list filled with the result of an enumeration, call ToList() , ToList() ,

 var filtered = data.Where(i => i.Count > 0).ToList(); 
+7
source

To change the sequence:

 var filtered = data.Where(i => i.Count > 0).Run(); 

You might want to explore the Reactive Extension for .NET 3.5 / 4.0 .

+1
source

Source: https://habr.com/ru/post/1313034/


All Articles