C# 如何仅从win表单中的文本文件中提取数字?
这就是我的文本文件的外观(示例) 我希望它只提取数字,然后把数字加在一起,并把它放在标签或其他东西上 我试过了C# 如何仅从win表单中的文本文件中提取数字?,c#,C#,这就是我的文本文件的外观(示例) 我希望它只提取数字,然后把数字加在一起,并把它放在标签或其他东西上 我试过了 foreach(int number in "money.txt"){ int sum = number + number; label5.Text = sum.ToString(); } 但这似乎不起作用 var summ = 0; var file = File.ReadAllLines("file.txt"); foreach (var line in file
foreach(int number in "money.txt"){
int sum = number + number;
label5.Text = sum.ToString();
}
但这似乎不起作用
var summ = 0;
var file = File.ReadAllLines("file.txt");
foreach (var line in file)
{
var number = int.Parse(line.Split(":")[0]);
summ += number;
}
label5.Text = summ.ToString();
类似的东西可以作为基础,您可以根据需要使用。这是一个更简单的解决方案
非常重要强> 您的代码:
foreach(int number in "money.txt"){
int sum = number + number; // BIG ERROR
label5.Text = sum.ToString();
}
你犯了一个很大的错误,int sum=number+number代码>
首先将sum
带出您的范围(可能是global
)
您必须执行两个步骤:
在线试试这个
步骤1:读取文件的内容:
using System.IO;
// Your code
static string yourTextFileContent = File.ReadAllText("money.txt");
第二步:我写了一个方法来完成你的工作:
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
public class Program
{
// Demo string
static string yourMoney = @"28:Toy
1:Chocolate bar
10:Water bottle";
// Your real string
//static string yourTextFileContent = File.ReadAllText("money.txt");
public static void Main()
{
Console.WriteLine("Using IEnumerable");
// int sum = 0;
foreach (int item in GetEnumerableIntFromString(yourMoney))
{
sum += item;
Console.WriteLine(item);
}
Console.WriteLine($"Sum: {sum}");
//label5.Text = sum.ToString();
}
// Using IEnumerable
private static IEnumerable<int> GetEnumerableIntFromString(string str)
{
string[] splitLine = str.Split(new[]{'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
foreach(string item in splitLine)
{
string[] splitToGetNumber = item.Split(new[]{':'},StringSplitOptions.RemoveEmptyEntries);
yield return Convert.ToInt32(splitToGetNumber[0].Trim());
}
}
}
获取错误“无法将字符转换为字符串”当我单击它时,它会将我带到foreach关键字。我创建了一个简单的应用程序来尝试它。这个代码对我有用。变量summ与文件中的数字总和相同。在这种情况下,变量是什么?-因为我想把它贴在标签上。@leonlejunchen这能回答你的问题吗?如果回答了,请标记它。这是否回答了您的问题?使一项简单的任务过于复杂。
using System.IO;
// Your code
static string yourTextFileContent = File.ReadAllText("money.txt");
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
public class Program
{
// Demo string
static string yourMoney = @"28:Toy
1:Chocolate bar
10:Water bottle";
// Your real string
//static string yourTextFileContent = File.ReadAllText("money.txt");
public static void Main()
{
Console.WriteLine("Using IEnumerable");
// int sum = 0;
foreach (int item in GetEnumerableIntFromString(yourMoney))
{
sum += item;
Console.WriteLine(item);
}
Console.WriteLine($"Sum: {sum}");
//label5.Text = sum.ToString();
}
// Using IEnumerable
private static IEnumerable<int> GetEnumerableIntFromString(string str)
{
string[] splitLine = str.Split(new[]{'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
foreach(string item in splitLine)
{
string[] splitToGetNumber = item.Split(new[]{':'},StringSplitOptions.RemoveEmptyEntries);
yield return Convert.ToInt32(splitToGetNumber[0].Trim());
}
}
}
Enumerable<int> enumerable = yourEnumerable;
List<int> asList = enumerable.ToList();