我需要对字符串变量
中的几个值求和这是我的变量:
string strBillHeader = "Invoice Details
INVOICE_DATE,INVOICE_DESCRIPTION,VALUE,FROM_DATE,TO_DATE
01/11/2014,New Corpbundle 7,7,01/11/2014,30/11/2014
01/11/2014,New Corpbundle 7,-7,01/11/2014,30/11/2014
01/11/2014,New Corpbundle 7,7,01/11/2014,30/11/2014
01/11/2014,Missed Call ALERT with Offer,2,01/11/2014,30/11/2014"
在这种情况下,我需要输出值为(7,-7,7,2)的值?结果得到9分。
我试着这样做:
for (int x = 4; x <= countCommas - 3; x += 4)
{
int firstCommaIndex = strBillHeader.IndexOf(',', strBillHeader.IndexOf(',') + x);
int secondCommaIndex = strBillHeader.IndexOf(',', strBillHeader.IndexOf(',') + (x + 1));
string y = strBillHeader.Substring(firstCommaIndex + 1, 1);
chargeAmount = Convert.ToInt32(y);
//chargeAmount = Int32.Parse(strBillHeader.Substring(firstCommaIndex, secondCommaIndex - firstCommaIndex));
TotalChargeAmount += ChargeAmount;
//string AstrBillHeader = strBillHeader.Split(',')[0];
}
但由于我在y变量中得到'V',因此无法正常工作。
任何帮助将不胜感激
答案 0 :(得分:2)
如果这些逗号和换行符始终存在,则应该有效:
var lines = strBillHeader.Split(Environment.NewLine).Skip(2);
int total = lines.Split(',').Sum(line => Convert.ToInt32(line[2]));
因此,您将发票拆分为行并丢弃前2个(&#34; Invoice Details
&#34;&#34; INVOICE_DATE,INVOICE_DESCRIPTION,VALUE,FROM_DATE,TO_DATE
&#34;)。然后你分开逗号上的每一行,取第三个值 - 第一个是日期,第二个是&#34; New Corpbundle 7
&#34;第三部分,你的价值。您将该值解析为int
,并对整批进行求和。
您可能会发现需要正确过滤掉这些行,而不是假设您可以跳过前两行并使用其余的行,但这应该可以帮助您开始。