當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


LINQ ToLookup()用法及代碼示例

LINQ 中的 ToLookup 運算符是一種擴展方法,用於從源中提取一組鍵/值對。在這裏,結果集合中的每個元素都是一個通用的 Lookup 對象。 Lookup 對象保存 Key 和與 Key 匹配的子序列項。

LINQ ToLookup 運算符的語法

以下是使用 LINQ ToLookup 運算符將集合作為鍵/值對返回的語法。

C# 代碼

var Emp = objEmployee.ToLookup(x => x.Department);

在上麵的語法中,我們使用 ToLookup 運算符將 "objEmployee" 的集合轉換為鍵/值對列表。

方法語法中的 LINQ ToLookup() 運算符示例

下麵是在方法語法中使用 LINQ ToLookup() 將輸入集合項轉換為鍵/值對列表的示例。

C# 代碼

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
//create an objEmployee of the class Employee and create a list of Employee
            List<Employee> objEmployee = new List<Employee>()
            {
                new Employee(){ Name="Akshay Tyagi", Department="IT", Country="India"},
                new Employee(){ Name="Vaishali Tyagi", Department="Marketing", Country="Australia"},
                new Employee(){ Name="Arpita Rai", Department="HR", Country="China"},
                new Employee(){ Name="Shubham Ratogi", Department="Sales", Country="USA"},
                new Employee(){ Name="Himanshu Tyagi", Department="Operations", Country="Canada"}
            };
    //objEmployee.ToLookup() method is used to print the value of the data in the pair/collection of items.
                var Emp = objEmployee.ToLookup(x => x.Department);
                Console.WriteLine("Grouping Employees by Department");
                Console.WriteLine("---------------------------------");
                foreach (var KeyValurPair in Emp)
                {
                    Console.WriteLine(KeyValurPair.Key);
                // Lookup employees by Department
                foreach (var item in Emp[KeyValurPair.Key])
                {
                    Console.WriteLine("\t" + item.Name + "\t" + item.Department + "\t" + item.Country);
                }
          }
                Console.ReadLine();
    }
}
    class Employee
    {
        public string Name { get; set; }
        public string Department { get; set; }
        public string Country { get; set; }
    }
}

在上麵的示例中,我們使用 ToLookup 方法按部門對 Employee 進行分組。由於 ToLookup 生成鍵/值對,因此我們在 foreach 循環中使用它,內部循環根據作為輸入傳遞的鍵提取值。

輸出:

LINQ ToLookup() Method

查詢語法中的 LINQ ToLookup() 示例

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Employee> objEmployee = new List<Employee>()
            {
                new Employee(){ Name="Ashish ", Department="Marketing", Country="India"},
                new Employee(){ Name="John", Department="IT", Country="Australia"},
                new Employee(){ Name="Kim", Department="Sales", Country="China"},
                new Employee(){ Name="Marcia", Department="HR", Country="USA"},
                new Employee(){ Name="John", Department="Operations", Country="Canada"}
            };
                var emp = (from employee in objEmployee select employee).ToLookup(x => x.Department);
                 Console.WriteLine("Grouping Employees by Department");
                Console.WriteLine("---------------------------------");
                foreach (var KeyValurPair in emp)
                {
                    Console.WriteLine(KeyValurPair.Key);
                    // Lookup employees by Department
                    foreach (var item in emp[KeyValurPair.Key])
                    {
                        Console.WriteLine("\t" + item.Name + "\t" + item.Department + "\t" + item.Country);
                    }
                }
                    Console.ReadLine();
          }
    }
        class Employee
        {
            public string Name { get; set; }
            public string Department { get; set; }
            public string Country { get; set; }
         }
}

輸出:

LINQ ToLookup() Method



相關用法


注:本文由純淨天空篩選整理自 LINQ ToLookup() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。