Hi I got the following linq for ordering my input after lowest value. But i would like it to only output the lowest values.
var sortedDict = (from entry in x where entry.Value > 0 orderby entry.Value ascending select entry);
Now if it gets the following input.
3 4 2 6 2
This would be my output
2 2 3 4 6
What do I need to change in my linq so I only get this output
2 2
In LINQ, you can find the minimum element of the given sequence by using Min() function. This method provides the minimum element of the given set of values. It does not support query syntax in C#, but it supports in VB.NET. It is available in both Enumerable and Queryable classes in C#.
If your equation is in the form y = ax^2 + bx + c, you can find the minimum by using the equation min = c - b^2/4a. The first step is to determine whether your equation gives a maximum or minimum. This can be done by looking at the x^2 term.
The standard solution to get the minimum value in a sequence of values is using the Min() method.
Well, you could do:
int min = x.Min(entry => entry.Value); var lowestValues = x.Where(entry => entry.Value == min);
Note that I've explicitly split these up, as if you use Where(entry => entry.Value == x.Min(y => y.Value))
it will look for the minimum on every iteration. On the other hand, that's true of LINQ to Objects - but in LINQ to SQL it would probably be better to do it all in one query, and let the database sort it out.
You could try something like this:
data.Where (d => d == data.Min())
Note this is not necessarily the fastest way to do this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With