C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Important: The 2 arguments to ToDictionary are lambdas: the first sets each key, and the second sets each value.
Lambda: Look at the "v => v" style lines. Lambda can be expressed as "goes to," meaning each item in the array goes to itself.
LambdaC# program that uses ToDictionary
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// Example integer array.
int[] values = new int[]
{
1,
3,
5,
7
};
// First argument is the key, second the value.
Dictionary<int, bool> dictionary =
values.ToDictionary(v => v, v => true);
// Display all keys and values.
foreach (KeyValuePair<int, bool> pair in dictionary)
{
Console.WriteLine(pair);
}
}
}
Output
[1, True]
[3, True]
[5, True]
[7, True]
Also: Here we use the var keyword to simplify the syntax. This reduces repetitive syntax.
VarC# program that uses ToDictionary and List
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// Example with strings and List.
List<string> list = new List<string>()
{
"cat",
"dog",
"animal"
};
var animals = list.ToDictionary(x => x, x => true);
if (animals.ContainsKey("dog"))
{
// This is in the Dictionary.
Console.WriteLine("dog exists");
}
}
}
Output
dog exists
Warning: LINQ methods are significantly slower, but will scale equally well. Some programmers may not understand lambda syntax.
LINQAnd: Sometimes, using ToDictionary may prevent you from combining the loop with another operation, also leading to inefficient code.