我想在行中总结所有篇幅[1]
private async void search()
{
if (tbs.Text != null)
{
var files = await ApplicationData.Current.LocalFolder.GetFileAsync(logid.Text + ".txt");
var lines = await FileIO.ReadLinesAsync(files);
var pattern = tbs.Text;
foreach (string line in lines.Where(line => line.Contains(pattern)))
{
}
}
}
每一行都是这样的
收入10000
收入20000
我想把所有第二部分(第一部分[1])加起来 怎么做?
答案 0 :(得分:1)
假设您有以下列表,您可以得到以下总和:
List<string> list = new List<string>() { "income 10000", "income 20000", "income 30000" };
var sum = list.Sum(r => int.Parse(r.Split(' ')[1]));
以上假设您在拆分数组中至少有2个元素,而索引1上的项目是整数类型。对于上述内容,您将获得结果60000
如果您想使用 int.TryParse ,那么:
var sum = list.Sum(r => { int i;
return int.TryParse(r.Split(' ')[1], out i) ? i : 0; });
答案 1 :(得分:0)
您可以使用string.Split方法执行此操作,使用空格字符作为分隔符。它将返回一个字符串数组,该数量将是第二个元素。
然后使用int.TryParse将字符串值转换为int以计算总和。
private async void search()
{
if (tbs.Text != null)
{
var files = await ApplicationData.Current.LocalFolder.GetFileAsync(logid.Text + ".txt");
var lines = await FileIO.ReadLinesAsync(files);
var pattern = tbs.Text;
var sum = 0;
foreach (string line in lines)
{
var elements = line.Split(' ');
int value;
if (int.TryParse(elements[1], out value))
{
sum += value;
}
}
}
}