If you comes from a functional programming language background, you will find that you are missing the Map function (literally) speakingly ..
However, the Select code is used as the de facto Map function. I have some examples, but I have to admit that sme of the examples are rather contrived.
You can apply the Select as it is which is do a whole ranslation of the client data. while you can also provide certain predicate , which you can use as a mean to do filtering.
You have a class that is called PnL, and hat maps to the Table row data
internal class Data { #region Fields private string _book; private string _tradeType; private string _sector; private string _riskType; private string _ccy; private string _category; private string _tenure; private double _riskValue; private double _pnlValue; #endregion #region Public Properties [Column(Name = "Book", DataType = typeof(string))] public string Book { get { return _book; } private set { _book = value; } } [Column(Name = "TradeType", DataType = typeof(string))] public string TradeType { get { return _tradeType; } private set { _tradeType = value; } } [Column(Name = "Sector", DataType = typeof(string))] public string Sector { get { return _sector; } set { _sector = value; } } [Column(Name = "RiskType", DataType = typeof(string))] public string RiskType { get { return _riskType; } set { _riskType = value; } } [Column(Name = "Ccy", DataType = typeof(string))] public string Ccy { get { return _ccy; } set { _ccy = value; } } [Column(Name = "Category", DataType = typeof(string))] public string Category { get { return _category; } set { _category = value; } } [Column(Name = "Tenure", DataType = typeof(string))] public string Tenure { get { return _tenure; } set { _tenure = value; } } [Column(Name = "PnL", DataType = typeof(double))] public double PnLValue { get { return _pnlValue; } set { _pnlValue = value; } } [Column(Name = "Risk", DataType = typeof(double))] public double RiskValue { get { return _riskValue; } set { _riskValue = value; } } #endregion }
and then you have a class where you used as data model to process. and the PnLDataModel looks like this:
[ObjectId("Key")] internal class DataModel : ICloneable { #region Fields private Tuple<string, string, string, string, string, string, string> _key; private string _book; private string _tradeType; private string _sector; private string _riskType; private string _ccy; private string _category; private string _tenure; private double _riskValue; private double _pnlValue; #endregion #region Constructors public DataModel( string book, string tradeType, string sector, string riskType, string ccy, string category, string tenure) { Book = book; TradeType = tradeType; Sector = sector; RiskType = riskType; Ccy = ccy; Category = category; Tenure = tenure; _key = new Tuple<string, string, string, string, string, string, string>( book, tradeType, sector, riskType, ccy, category, tenure); } #endregion #region Public Properties public Tuple<string, string, string, string, string, string, string> Key { get { return _key; } } public string Book { get { return _book; } private set { _book = value; } } public string TradeType { get { return _tradeType; } private set { _tradeType = value; } } public string Sector { get { return _sector; } private set { _sector = value; } } public string RiskType { get { return _riskType; } private set { _riskType = value; } } public string Ccy { get { return _ccy; } private set { _ccy = value; } } public string Category { get { return _category; } private set { _category = value; } } public string Tenure { get { return _tenure; } private set { _tenure = value; } } public double PnLValue { get { return _pnlValue; } set { _pnlValue = value; } } public double RiskValue { get { return _riskValue; } set { _riskValue = value; } } #endregion #region ICloneable public object Clone() { return new DataModel( Book, TradeType, Sector, RiskType, Ccy, Category, Tenure) { PnLValue = PnLValue, RiskValue = RiskValue }; } #endregion }
and you will need to convert from one type to another, so you can do this:
private DataModel DataProviderToModel(Data Data) { return new DataModel( Data.Book, Data.TradeType, Data.Sector, Data.RiskType, Data.Ccy, Data.Category, Data.Tenure) { PnLValue = Data.PnLValue, RiskValue = Data.RiskValue }; } private IEnumerable<DataModel> DataProviderToModel(IEnumerable<Data> Datas) { return Datas.Select(DataProviderToModel); }
Basically you defined a MapMethod and the used that to apply on IEnumerable<Source> to IEnumerable<Target>
相关推荐
总之,`SelectMany`是C#和Linq中的一个关键方法,它提供了一种优雅的方式,从复杂的、多层次的数据结构中提取和组合信息。通过熟练掌握`SelectMany`,开发者可以更高效地处理数据,编写出简洁且易于理解的代码。在...
赠送jar包:calcite-linq4j-1.2.0-incubating.jar; 赠送原API文档:calcite-linq4j-1.2.0-incubating-javadoc.jar; 赠送源代码:calcite-linq4j-1.2.0-incubating-sources.jar; 赠送Maven依赖信息文件:calcite-...
在.NET框架中,C#是一种常用的编程语言,而LINQ(Language Integrated Query,语言集成查询)是C#的一个重要特性,它为处理数据提供了一种更简洁、更强大的方式。本资源“C#-Linq 中的日志功能实现.rar”显然是关于...
calcite-linq4j-1.2.0-incubating.jar
根据给定文件中的标题、描述、标签以及部分内容,我们可以总结出以下有关C#中的SQL、LINQ和Lambda表达式之间的转换知识点。 ### C#中的SQL、LINQ与Lambda表达式的对比 #### 1. 基础查询 **SQL:** ```sql SELECT * ...
本文将详细探讨PyPI中的一个特定资源——"py-linq-1.2.5.tar.gz",这是一款基于Python的库,旨在为Python开发者带来类似C# LINQ(Language Integrated Query)的功能。 首先,我们来理解什么是LINQ。LINQ是微软.NET...
go-linq-master是这个开源项目的主要源代码目录,其中包含了实现LINQ功能的所有Go源文件和相关文档。通过深入这个项目,我们可以学习如何在Go语言中构建和使用类似LINQ的查询接口。 该项目的核心概念是提供一种链式...
《深入解析前端开源库Async-Linq》 在前端开发领域,高效的代码管理和数据处理是提升应用性能的关键。Async-Linq,作为一个开源库,为JavaScript和TypeScript开发者提供了一种强大的异步 LINQ(Language Integrated...
【前端开源库-async-linq】是一个专门为JavaScript设计的异步LINQ库,它为JavaScript开发者带来了.NET开发者熟悉的Language Integrated Query (LINQ) 模式。LINQ是一种在.NET框架中处理数据的强大工具,它提供了统一...
根据提供的文件信息,“C# + linq 视频”这一标题和描述中提及的“文档里有下载地址和密码, 很不错的视频教程”,我们可以从中提取出与C#编程语言及LINQ技术相关的知识点。 ### C#编程语言 C#(读作C Sharp)是一...
Angular-LINQ.zip,语言集成查询的typescript实现(linq)(ecmascript 2015)该库是使用typescript和javascript语言的最新特性实现linq的持续努力(对于es5兼容库,请查看linq-es5分支)。这个库是用typescript实现...
本书《ProLINQ: Language Integrated Query in C# 2010》专注于C# 2010版本中的语言集成查询(LINQ)技术。书中旨在通过丰富的示例代码,为读者提供一个深入理解LINQ及其相关C# 4.0语言特性的资料库。 LINQ技术作为...
本书《Pro LINQ: Language Integrated Query in C# 2010》是关于如何使用C#语言进行集成查询(LINQ)的权威指南。作者Adam Freeman和Joseph C. Rattz, Jr. 深入讲解了LINQ的原理和应用,书中内容丰富,包括了大量的...
在.NET框架中,Linq(Language Integrated Query,语言集成查询)是C#编程的一个核心特性,它极大地简化了数据查询操作。Linq提供了一种在各种数据源上进行统一查询的方式,包括数组、集合、数据库、XML等。下面将...
在C#编程中,LINQ(Language Integrated Query,语言集成查询)是一种强大的工具,它允许开发者使用类似SQL的语法在代码中操作各种数据源,包括SQL Server数据库。本教程将详细讲解如何使用C#的LINQ来实现SQL数据库...
dynamic-linq-query-builder是一个小型库,允许任何.Net框架类集合在运行时动态过滤。 功能(v1.2.0) 从任何集合和过滤器组合生成IQueryable 可以根据需要对多个字段进行复杂的分组查询 通过点表示法支持嵌套...
LINQ(Language Integrated Query,语言集成查询)是.NET框架中的一项重要特性,自.NET 3.5版本引入,它为C#和VB.NET等编程语言提供了强大的查询能力,使得开发者能够以更加直观和一致的方式处理各种数据源,如集合...
在编程领域,Lambda LINQ(Language Integrated Query)是.NET框架中的一个强大工具,它允许开发者以声明性方式处理数据,类似于SQL查询。Lambda表达式是LINQ的核心部分,它提供了一种简洁的方式来定义匿名函数。...
C# Linq(Language Integrated Query,语言集成查询)是.NET框架的一个重要组成部分,它为C#程序员提供了一种直观、简洁的方式来处理各种数据源,包括集合、数组、XML、数据库等。Linq允许开发者使用相同的查询语法...
资源分类:Python库 所属语言:Python 资源全名:python-linq-2.0.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059