在LINQ连接中添加自定义值

时间:2014-02-12 10:17:29

标签: c# linq

我有两个名单:

  • FXCashFlow [包含 - 金额,paymentdate,TradeId,货币]
  • FXTrades [包含 - TradePreferences,TradeId]

我在返回类中需要的是:

  • 退货对象[类型,金额,付款日期,TradeId,货币,TradePreference]

Type =" Fx",因为数据是从Fx类中提取的。

对于Return Object,我正在使用这样的LINQ JOIN:

 var list = _fxCashflow.GetAll().Join(_fxTrade.GetAll(),
             outerKey => outerKey.TradeId,
             innerKey => innerKey.TradeId,
             (CashFlow, Trade) => new
             {
                //"Fx", <- This line gives error
                CashFlow.TradeId,
                Trade.TradeReference,
                CashFlow.PaymentAmount,
                CashFlow.CurrencyCode,
                CashFlow.PaymentDate,
                CashFlow.CashflowTypeCode
             }
            );

我需要插入&#34; Fx&#34;,因为这些数据将被连接到一个类别,这个&#34; Fx&#34;将识别从现金流类返回的记录。

如何在此返回对象中插入自定义值?或者,如果有其他方法可以做到这一点?

非常赞赏!!

3 个答案:

答案 0 :(得分:1)

尝试像这样插入:

         (CashFlow, Trade) => new
         {
            Type = "Fx",
            CashFlow.TradeId,
            Trade.TradeReference,
            CashFlow.PaymentAmount,
            CashFlow.CurrencyCode,
            CashFlow.PaymentDate,
            CashFlow.CashflowTypeCode
         }

答案 1 :(得分:1)

引入实际的Fx类而不是使用字符串标识符会不会更有意义吗?

public class Fx
{
    public int TradeId { get; set; }
    public string TradeRef { get; set; }
    public decimal PaymentAmount { get; set; }
    ...
}

(CashFlow, Trade) => new Fx
{
    TradeId = CashFlow.TradeId,
    TradeRef = Trade.TradeReference,
    PaymentAmount = CashFlow.PaymentAmount,
    ...
}

答案 2 :(得分:0)

您可以将此信息存储在枚举中并在匿名对象中使用它,也可以为匿名对象定义新属性。