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的好候选人。。。只需使用一个循环。