开源项目是众多组织与个人分享的组件或项目成果,作者付出的庞大的心血,所以首先大家要心存感激、尊重。请严格遵守每个项目的开源协议后再使用。尊重知识产权,共建和谐开源社区。
1、MagicOnion
MagicOnion是一个用于.NET平台的现代RPC框架,提供双向实时通信(如SignalR和Socket.io)以及RPC机制(如WCF和基于web的API)。该框架基于gRPC,这是一种用于HTTP/2的快速、紧凑的二进制网络传输。然而,与普通gRPC不同,它将C#接口视为协议模式,实现了C#项目之间无需.proto(协议缓冲IDL)的无缝代码共享。
应用场景
微服务使用的gRPC,以及WinForms、Wpf下的Wcf
API服务,如针对Unity、Xamarin和Windows客户端的Asp.NetCore
双向实时通信,如Socket.io,SignalR,PhotonandUNet
开源 该项目使用以下方法增强LINQtoObject:Acquire、Aggregate、AggregateRight、Append、Assert、AssertCount、AtMost、Await、AwaitCompletion、Backsert、Batch、Cartesian、Choose、CountBetween、CompareCount、CountBy、CountDown、Consume、DistinctBy、EndsWith、EquiZip、Evaluate,、Exactly、ExceptBy,Exclude,FallbackIfEmpty,FillBackward,FillForward,Flatten,Fold,ForEach,From,FullGroupJoin,FullJoin,Generate,GenerateByIndex,groupappearch,Index,IndexBy,Insert,Interleave,Lag,Lead,LeftJoin,MaxBy,Memoize,MinBy,Move,OrderBy,OrderedMerge,Pad,PadStart,Pairwise,PartialSort,PartialSortBy、Partition、Permutations、Pipe、Prepend、PreScan、Random、randouble、randomsublet、Rank、RankBy、Repeat、Return、RightJoin、runlengthcode、Scan、ScanBy、ScanRight、Segment、Sequence、Shuffle、SkipLast、SkipUntil、Slice、SortedMerge、Split、StartsWith、Subsets、TagFirstLast、TakeEvery、TakeLast、TakeUntil、ThenBy、ToArrayByIndex、,ToDataTable、ToDelimitedString、ToDictionary、ToHashSet、ToLookup、Trace、Transpose、TraverseBreadthFirst、TraverseDepthFirst、TrySingle、UNDOWN、WindowLeft、WindowRight、ZipLongest、ZipShortest。
MoreLINQ有两种用法。最简单的方法是只导入MoreLinq名称空间,所有扩展方法都可以立即用于它们扩展的类型(通常是IEnumerable的一些实例化)。但是,在一些非常罕见的情况下,这样做可能会导致与您可能正在使用的其他库发生冲突,这些库还附带使用同名方法和签名扩展同一类型。例如,当微软.NETFramework4.0引入Zip时,MoreLINQ已经有了一个Zip。从MoreLINQ的3.0版开始,您可以使用C#6中引入的静态导入功能,通过单独导入所需的扩展方法来减少当前(甚至将来)冲突的可能性:
MoreLinq.Extensions.LeadExtension;
在上面的例子中,范围内只有Lag和Lead扩展方法可用。
除了扩展方法之外,MoreLINQ还提供了常规的静态方法,可以生成(而不是操作)序列,如Unfold、Random、Sequence等。如果要在静态导入其他单个扩展方法时使用这些方法,可以通过别名来实现:
MoreEnumerable=MoreLinq.MoreEnumerable;
在上面的示例中,Lag和Lead可以作为扩展方法使用,也可以作为MoreEnumerable上的所有常规静态方法使用,但是没有MoreEnumerable提供的任何扩展方法。
开源地址与使用教程: