C# Eval Expression LINQ Dynamic - Count
LINQ Dynamic Count Examples
C# Dynamic LINQ Count examples using an Expression Evaluator.
Count - Simple
This C# example uses the LINQ Count method with a dynamic expression to get the number of unique factors of 300.
LINQ
int[] factorsOf300 = {2, 2, 3, 5, 5}; var uniqueFactors = factorsOf300.Distinct().Count(); Console.WriteLine("There are {0} unique factors of 300.", uniqueFactors);
LINQ Execute
int[] factorsOf300 = {2, 2, 3, 5, 5}; var uniqueFactors = factorsOf300.Distinct().Execute<int>("Count()"); Console.WriteLine("There are {0} unique factors of 300.", uniqueFactors);
Result
highlight text %} LINQ Execute Test
There are 3 unique factors of 300.
## Count - Conditional
This C# example uses the LINQ Count method with a dynamic expression to get the number of odd ints in the array.
### LINQ
```csharp
int[] numbers = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0};
var oddNumbers = numbers.Count(n => n % 2 == 1);
Console.WriteLine("There are {0} odd numbers in the list.", oddNumbers);
LINQ Dynamic
int[] numbers = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}; var oddNumbers = numbers.Count(n => "n % 2 == 1"); Console.WriteLine("There are {0} odd numbers in the list.", oddNumbers);
LINQ Execute
int[] numbers = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}; var oddNumbers = numbers.Execute<int>("Count(n => n % 2 == 1)"); Console.WriteLine("There are {0} odd numbers in the list.", oddNumbers);
Result
highlight text %} LINQ Execute Test
There are 5 odd numbers in the list.
## Count - Nested
This C# example uses the LINQ Count method with a dynamic expression to return a list of customers and how many orders each has.
### LINQ
```csharp
private void uiCount_Nested_LINQ_Click(object sender, EventArgs e)
{
var customers = My.GetCustomerList();
var orderCounts = customers.Select(c => new {c.CustomerID, OrderCount = c.Orders.Count()});
var sb = new StringBuilder();
My.ObjectDumper.Write(sb, orderCounts);
My.Result.Show(My.LinqResultType.Linq, uiResult, sb);
}
LINQ Execute
private void uiCount_Nested_LINQ_Execute_Click(object sender, EventArgs e) { var customers = My.GetCustomerList(); var orderCounts = customers.Execute("Select(c => new { c.CustomerID, OrderCount = c.Orders.Count() })"); var sb = new StringBuilder(); My.ObjectDumper.Write(sb, orderCounts); My.Result.Show(My.LinqResultType.LinqExecute, uiResult, sb); }
Result
highlight text %} LINQ Execute Test
CustomerID=ALFKI CustomerID=ANATR CustomerID=ANTON CustomerID=AROUT CustomerID=BERGS CustomerID=BLAUS CustomerID=BLONP CustomerID=BOLID CustomerID=BONAP CustomerID=BOTTM CustomerID=BSBEV CustomerID=CACTU CustomerID=CENTC CustomerID=CHOPS CustomerID=COMMI CustomerID=CONSH CustomerID=DRACD CustomerID=DUMON CustomerID=EASTC CustomerID=ERNSH CustomerID=FAMIA CustomerID=FISSA CustomerID=FOLIG CustomerID=FOLKO CustomerID=FRANK CustomerID=FRANR CustomerID=FRANS CustomerID=FURIB CustomerID=GALED CustomerID=GODOS CustomerID=GOURL CustomerID=GREAL CustomerID=GROSR CustomerID=HANAR CustomerID=HILAA CustomerID=HUNGC CustomerID=HUNGO CustomerID=ISLAT CustomerID=KOENE CustomerID=LACOR CustomerID=LAMAI CustomerID=LAUGB CustomerID=LAZYK CustomerID=LEHMS CustomerID=LETSS CustomerID=LILAS CustomerID=LINOD CustomerID=LONEP CustomerID=MAGAA CustomerID=MAISD CustomerID=MEREP CustomerID=MORGK CustomerID=NORTS CustomerID=OCEAN CustomerID=OLDWO CustomerID=OTTIK CustomerID=PARIS CustomerID=PERIC CustomerID=PICCO CustomerID=PRINI CustomerID=QUEDE CustomerID=QUEEN CustomerID=QUICK CustomerID=RANCH CustomerID=RATTC CustomerID=REGGC CustomerID=RICAR CustomerID=RICSU CustomerID=ROMEY CustomerID=SANTG CustomerID=SAVEA CustomerID=SEVES CustomerID=SIMOB CustomerID=SPECD CustomerID=SPLIR CustomerID=SUPRD CustomerID=THEBI CustomerID=THECR CustomerID=TOMSP CustomerID=TORTU CustomerID=TRADH CustomerID=TRAIH CustomerID=VAFFE CustomerID=VICTE CustomerID=VINET CustomerID=WANDK CustomerID=WARTH CustomerID=WELLI CustomerID=WHITC CustomerID=WILMK CustomerID=WOLZA OrderCount=6 OrderCount=4 OrderCount=7 OrderCount=13 OrderCount=18 OrderCount=7 OrderCount=11 OrderCount=3 OrderCount=17 OrderCount=14 OrderCount=10 OrderCount=6 OrderCount=1 OrderCount=8 OrderCount=5 OrderCount=3 OrderCount=6 OrderCount=4 OrderCount=8 OrderCount=30 OrderCount=7 OrderCount=0 OrderCount=5 OrderCount=19 OrderCount=15 OrderCount=3 OrderCount=6 OrderCount=8 OrderCount=5 OrderCount=10 OrderCount=9 OrderCount=11 OrderCount=2 OrderCount=14 OrderCount=18 OrderCount=5 OrderCount=19 OrderCount=10 OrderCount=14 OrderCount=4 OrderCount=14 OrderCount=3 OrderCount=2 OrderCount=15 OrderCount=4 OrderCount=14 OrderCount=12 OrderCount=8 OrderCount=10 OrderCount=7 OrderCount=13 OrderCount=5 OrderCount=3 OrderCount=5 OrderCount=10 OrderCount=9 OrderCount=0 OrderCount=6 OrderCount=10 OrderCount=6 OrderCount=9 OrderCount=13 OrderCount=28 OrderCount=5 OrderCount=18 OrderCount=12 OrderCount=11 OrderCount=10 OrderCount=5 OrderCount=6 OrderCount=31 OrderCount=9 OrderCount=7 OrderCount=4 OrderCount=9 OrderCount=12 OrderCount=4 OrderCount=3 OrderCount=5 OrderCount=10 OrderCount=7 OrderCount=3 OrderCount=11 OrderCount=10 OrderCount=4 OrderCount=10 OrderCount=15 OrderCount=9 OrderCount=14 OrderCount=8 OrderCount=7
## Count - Grouped
This C# example uses the LINQ Count method with a dynamic expression to return a list of categories and how many products each has.
### LINQ
```csharp
private void uiCount_Grouped_LINQ_Click(object sender, EventArgs e)
{
var products = My.GetProductList();
var categoryCounts = products.GroupBy(p => p.Category).Select(g => new {Category = g.Key, ProductCount = g.Count()});
var sb = new StringBuilder();
My.ObjectDumper.Write(sb, categoryCounts);
My.Result.Show(My.LinqResultType.Linq, uiResult, sb);
}
LINQ Execute
private void uiCount_Grouped_LINQ_Execute_Click(object sender, EventArgs e) { var products = My.GetProductList(); var categoryCounts = products.Execute("GroupBy(p => p.Category).Select(g => new { Category = g.Key, ProductCount = g.Count() })"); var sb = new StringBuilder(); My.ObjectDumper.Write(sb, categoryCounts); My.Result.Show(My.LinqResultType.LinqExecute, uiResult, sb); }
Result
highlight text %} LINQ Execute Test
Category=Beverages Category=Condiments Category=Produce Category=Meat/Poultry Category=Seafood Category=Dairy Products Category=Confections Category=Grains/Cereals ProductCount=12 ProductCount=12 ProductCount=5 ProductCount=6 ProductCount=12 ProductCount=10 ProductCount=13 ProductCount=7