0

我有两个不同列的表。

平衡.cs

    public int Id { get; set; }
    public string Location { get; set; }
    public decimal Balance { get; set; }
    public string Asset { get; set; }
    public decimal ValueInUSD { get; set; }

Reserve.cs

    public decimal? Balance { get; set; }
    public string Asset { get; set; }

主表.cs

    public string Asset { get; set; }
    public decimal BalanceFromBalanceTable{ get; set; }
    public decimal BalanceFromReserveTable{ get; set; }

我的目标是用来自BalanceReserve表的数据填充MainTable 。问题是这些表具有不同的属性。

编辑:按要求提供数据的示例。

**Balance table**
Asset - USD; Balance - 25; 
Asset - BTC; Balance - 10;
**rest of the columns are irrelevant

**Reserve table**
Asset - USD; Balance -200;
Asset - BTC; Balance - 1;

**Main Table**
Asset - USD; BalanceFromBalanceTable - 25; BalanceFromReserveTable - 200;
Asset - BTC; BalanceFromBalanceTable - 10; BalanceFromReserveTable - 1;
4

2 回答 2

3
var mainTableCol = from b in balance
join r in reserve on b.Asset equals r.Asset
select new MainTable(){ Asset = b.Asset
                       ,BalanceFromBalanceTable = b.balance
                       ,BalanceFromReserverTable = r.balance }; 
于 2020-01-21T10:25:07.420 回答
0

像这样修复它:

    List<Balance> actives = item.GetItems();
    List<Reserve> liabilities = Reserve.GetLiabilities();
    List<MainTable> main= new List<MainTable>();
                foreach(var active in actives)
                {
                    foreach(var liability in liabilities)
                    {
                        if (active.AssetId == liability.AssetId)
                        {
                            main.Add(new MainTable
                            {
                                Active = active.Balance,
                                Liability = liability.Deposits,
                                AssetId = active.AssetId
                            });
                        }
                    }
                }
于 2020-01-21T10:11:02.723 回答