C# 如何在linq中获得剩余值?

C# 如何在linq中获得剩余值?,c#,linq,C#,Linq,我有一个列表,其中包含:(无剩余列数据) 我有initialRecieve=1变量 如何计算C#中的剩余列以获得以下结果 Recive Pay Remain --------------------------------------------- 2 0 3 (initialRecieve+Recive-Pay) 0 4 -1 (Remain+Recive-Pay) 3 0

我有一个列表,其中包含:(无剩余列数据)

我有
initialRecieve=1
变量

如何计算C#中的剩余列以获得以下结果

Recive      Pay     Remain
---------------------------------------------
2            0       3  (initialRecieve+Recive-Pay)
0            4      -1  (Remain+Recive-Pay)
3            0       2  (Remain+Recive-Pay)
4            0       6  (Remain+Recive-Pay)

只需执行以下操作:

for (var i = 0; i < DataTable.Rows.Count; i++)
{
   if (i != 0)
   {
      DataTable.Rows[i][2] = (DataTable.Rows[i - 1][2] + DataTableRows[i][0]) - DataTable.Rows[i][1];
   }
   else if (i == 0) DataTable.Rows[i][2] = (InitialRecieve + DataTable.Rows[i][0]) - DataTable.Rows[i][1]; 
}
for(变量i=0;i

这将计算出内存中的数据需要什么。

只需执行以下操作:

for (var i = 0; i < DataTable.Rows.Count; i++)
{
   if (i != 0)
   {
      DataTable.Rows[i][2] = (DataTable.Rows[i - 1][2] + DataTableRows[i][0]) - DataTable.Rows[i][1];
   }
   else if (i == 0) DataTable.Rows[i][2] = (InitialRecieve + DataTable.Rows[i][0]) - DataTable.Rows[i][1]; 
}
for(变量i=0;i

这将计算出内存中的数据需要什么。

我创建了一个简单的控制台应用程序,这取决于您需要什么

class doc{

    public int Pay{get;set;}
    public int Receive{get;set;}
}

public class Program
{
    public static void Main(string[] args)
    {
        List<doc> lst = new List<doc>();
        lst.Add(new doc(){Receive=2,Pay=0});
        lst.Add(new doc(){Receive=0,Pay=4});
        lst.Add(new doc(){Receive=3,Pay=0});
        lst.Add(new doc(){Receive=4,Pay=0});

        int remain = 1; // initialRecieve=1
        var result = (from line in lst
                        select new {
                        Receive = line.Receive,
                        Pay = line.Pay,
                        Remain = (remain = remain + line.Receive - line.Pay)
                      }).ToList();
        foreach(var item in result){
        Console.WriteLine(item);
        }
    }
}

检查它,我创建一个简单的控制台应用程序取决于你需要什么

class doc{

    public int Pay{get;set;}
    public int Receive{get;set;}
}

public class Program
{
    public static void Main(string[] args)
    {
        List<doc> lst = new List<doc>();
        lst.Add(new doc(){Receive=2,Pay=0});
        lst.Add(new doc(){Receive=0,Pay=4});
        lst.Add(new doc(){Receive=3,Pay=0});
        lst.Add(new doc(){Receive=4,Pay=0});

        int remain = 1; // initialRecieve=1
        var result = (from line in lst
                        select new {
                        Receive = line.Receive,
                        Pay = line.Pay,
                        Remain = (remain = remain + line.Receive - line.Pay)
                      }).ToList();
        foreach(var item in result){
        Console.WriteLine(item);
        }
    }
}

检查一下您到目前为止尝试过的linq?如果
Remain
列是基于
Receive
Pay
的计算列,为什么不为此目的在SQL中编写一个函数呢?我的内存中有文档列表,我想向其中添加Remain列值。原始数据是列表这不是Linq的好候选人。。。只需使用一个循环。到目前为止,您尝试了什么linq?如果
remaine
列是基于
Receive
Pay
的计算列,为什么不为此目的在SQL中编写一个函数呢?我的内存中有文档列表,我想向其中添加remaine列值。原始数据是列表这不是Linq的好候选人。。。只需使用一个循环。