扩展方法Select无重载单一方式实现示例

本文介绍了一个使用 C# 编写的 Select 扩展方法示例,该方法用于从 PetOwner 对象集合中选择出每个主人拥有的宠物列表。通过实际代码展示了如何利用 LINQ 的 Select 方法来操作数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. public static class myEnumerable
  5. {    
  6.     public static IEnumerable<S> Select<T, S>(
  7.          this IEnumerable<T> source, Func<T, S> selector)
  8.     {
  9.         foreach (T item in source)
  10.         {
  11.             yield return selector(item);
  12.         }
  13.     }
  14. }
  15. class PetOwner
  16. {
  17.     public string Name { getset; }
  18.     public List<String> Pets { getset; }
  19. }
  20. class ExtensionMethods
  21. {
  22.     public static void Main()
  23.     {      
  24.          PetOwner[] petOwners = 
  25.          { 
  26.              new PetOwner { Name="Higa, Sidney",       Pets = new List<string>{ "Scruffy""Sam" } },
  27.              new PetOwner { Name="Ashkenazi, Ronen",   Pets = new List<string>{ "Walker""Sugar" } },
  28.              new PetOwner { Name="Price, Vernette",    Pets = new List<string>{ "Scratches""Diesel" } }
  29.          };
  30.          IEnumerable<List<String>> query =petOwners.Select(petOwner => petOwner.Pets);
  31.          foreach (List<String> petList in query)
  32.          {
  33.              foreach (string pet in petList)
  34.              {
  35.                  Console.WriteLine(pet);
  36.              }
  37.              Console.WriteLine();
  38.          }
  39.         Console.ReadKey();
  40.     }
  41. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值