在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Linq.Extras扩展方法集合中文介绍以及源码下载

Linq.Extras扩展方法集合中文介绍以及源码下载

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.10M
  • 下载次数:0
  • 浏览次数:10
  • 发布时间:2024-03-25
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
Linq.Extras是一套补充System.Linq.Enumerable的扩展和辅助方法集合。这些方法中的一些是常见Linq操作的快捷方式(例如IsNullOrEmpty),或对现有Linq方法的改进(例如为FirstOrDefault指定默认值,为Max指定比较器)。其他则完成了标准Linq中没有对应的更复杂的事情(如RankBy, DistinctUntilChanged)。
以下是一些值得关注的方法:
  • DistinctBy, IntersectBy, UnionBy, ExceptBy, SequenceEqualBy
    与Distinct, Intersect, Union, Except, SequenceEqual相同,但允许您指定一个键来进行等值比较。
    var result = items.DistinctBy(i => i.Name);
  • DistinctUntilChanged
    返回一个具有不连续重复项的序列。
    var input = new[] { 1, 1, 1, 2, 3, 3, 1, 3, 2, 2, 1 }; var result = input.DistinctUntilChanged(); // 1, 2, 3, 1, 3, 2, 1
  • MinBy, MaxBy
    返回序列中具有最小或最大指定键值的项。
    var winner = players.MaxBy(p => p.Score); Console.WriteLine("The winner is {0} with {1} points!", winner.Name, winner.Score);
  • RankBy, DenseRankBy
    这些方法基于指定的键为集合中的每个项关联一个排名。
    var ranking = players.RankByDescending(player => player.Score, (player, rank) => string.Format("{0}. {1} ({2})", rank, player.Name, player.Score));
  • LeftOuterJoin, RightOuterJoin, FullOuterJoin
    顾名思义,这些方法是为那些总是忘记如何使用Linq执行外连接的人设计的。
    var result = left.OuterJoin(right, x => x.Id, y => y.Id, (id, x, y) => new { x, y });
  • ToHierarchy, Flatten
    将一个扁平的项序列转换为层次结构;将对象的层次结构转换为扁平序列。
    var roots = items.ToHierarchy(i => i.Id, i => i.ParentId); var flat = roots.Flatten(node => node.Children, TreeTraversalMode.DepthFirst);
这是对Linq.Extras扩展方法集合的详细介绍,旨在为开发者提供更多的便利和灵活性。
【实例截图】
【核心代码】
文件清单
└── Linq.Extras-96a4f4bfed64095342c5df107c1fe1fb95603ee5
    ├── appveyor.yml
    ├── build.cmd
    ├── docs
    │   └── Documentation.shfbproj
    ├── LICENSE.md
    ├── Linq.Extras.sln
    ├── Linq.Extras.snk
    ├── README.md
    ├── src
    │   └── Linq.Extras
    │       ├── AppendPrepend.cs
    │       ├── Batch.cs
    │       ├── CommonPrefix.cs
    │       ├── DistinctBy.cs
    │       ├── DistinctUntilChanged.cs
    │       ├── ExceptBy.cs
    │       ├── Flatten.cs
    │       ├── Generate.cs
    │       ├── GroupUntilChanged.cs
    │       ├── IndexOf.cs
    │       ├── IndexOfSubstring.cs
    │       ├── Infer.cs
    │       ├── INode.cs
    │       ├── Internal
    │       │   ├── ArgumentExtensions.cs
    │       │   └── MaybeNullAttribute.cs
    │       ├── IntersectBy.cs
    │       ├── IsNullOrEmpty.cs
    │       ├── ItemWithIndex.cs
    │       ├── Linq.Extras.csproj
    │       ├── MinMax.cs
    │       ├── None.cs
    │       ├── OrDefault.cs
    │       ├── OuterJoin.cs
    │       ├── Properties
    │       │   ├── Annotations.cs
    │       │   ├── AssemblyInfo.cs
    │       │   └── Resources.cs
    │       ├── RankBy.cs
    │       ├── SequenceEqualBy.cs
    │       ├── ToCollections.cs
    │       ├── ToHierarchy.cs
    │       ├── TreeTraversalMode.cs
    │       ├── UnionBy.cs
    │       ├── WithIndex.cs
    │       ├── XComparer.cs
    │       ├── XEnumerable.cs
    │       ├── XEqualityComparer.cs
    │       └── XList.cs
    ├── tests
    │   ├── Linq.Extras.Benchmarks
    │   │   ├── BatchBenchmark.cs
    │   │   ├── IndexOfBenchmark.cs
    │   │   ├── Linq.Extras.Benchmarks.csproj
    │   │   ├── WithIndexOnArrayBenchmark.cs
    │   │   ├── WithIndexOnEnumerableBenchmark.cs
    │   │   └── WithIndexOnListBenchmark.cs
    │   └── Linq.Extras.Tests
    │       ├── Extensions.cs
    │       ├── Linq.Extras.Tests.csproj
    │       ├── TestHelper.cs
    │       ├── XComparerTests
    │       │   ├── ByTests.cs
    │       │   ├── ChainWithTests.cs
    │       │   ├── FromComparisonTests.cs
    │       │   ├── MinMaxTests.cs
    │       │   └── ReverseTests.cs
    │       ├── XEnumerableTests
    │       │   ├── AppendPrependTests.cs
    │       │   ├── BatchTests.cs
    │       │   ├── CommonPrefixTests.cs
    │       │   ├── DistinctByTests.cs
    │       │   ├── DistinctUntilChangedTests.cs
    │       │   ├── ElementAtOrDefaultTests.cs
    │       │   ├── ExceptByTests.cs
    │       │   ├── FirstOrDefaultTests.cs
    │       │   ├── FlattenTests.cs
    │       │   ├── FullOuterJoinTests.cs
    │       │   ├── GenerateTests.cs
    │       │   ├── GroupUntilChangedTests.cs
    │       │   ├── IndexOfSubstringTests.cs
    │       │   ├── IndexOfTests.cs
    │       │   ├── IntersectByTests.cs
    │       │   ├── IsNullOrEmptyTests.cs
    │       │   ├── LastOrDefaultTests.cs
    │       │   ├── LeftOuterJoinTests.cs
    │       │   ├── MinMaxTests.cs
    │       │   ├── MiscTests.cs
    │       │   ├── NoneTests.cs
    │       │   ├── RankByTests.cs
    │       │   ├── RightOuterJoinTests.cs
    │       │   ├── SequenceEqualByTests.cs
    │       │   ├── SingleOrDefaultTests.cs
    │       │   ├── ToCollectionsTests.cs
    │       │   ├── ToHierarchyTests.cs
    │       │   ├── UnionByTests.cs
    │       │   └── WithIndexTests.cs
    │       └── XListTests
    │           ├── AsReadOnlyTests.cs
    │           ├── ShuffleTests.cs
    │           └── SwapTests.cs
    └── tools
        └── build
            ├── Build.cs
            ├── build.csproj
            └── CommandLineApplicationBullseyeExtensions.cs

14 directories, 93 files

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警