大佬教程收集整理的这篇文章主要介绍了如何在文本框中加入相同的行并计算它们,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嘿伙计们,我有问题我有一个文本框,它有时会有相同的行,现在我需要计算它们并在与文本的连接行中显示数字
private voID textBox1_TextChanged(object sender,EventArgs E)
{
String[] same =textBox1.Text.Split(new String[] { Environment.Newline },StringSplitoptions.NonE).disTinct().ToArray();
textBox1.Text = String.Join("\r\n",samE);
}
在这段代码中,它将加入行,我只能看到一行,但我需要计算行数,如果该行中有一些数字也可以计算
例如:
预期:
你的问题有点混乱,BTW我是这样解决的。
首先我为每个结果项做了一个类
public class Result
{
public String Item{ get; set; }
public int count{ get; set; }
public int Value{ get; set; }
}
然后我有一个按钮可以将“用户输入”转换为所需的格式
您可以将此方法作为 textbox1_changed 运行
private void btnTranslate_Click(object sender,EventArgs E)
{
var items = textBox1.Text.Split(new String[] { Environment.NewLine },StringSplitOptions.NonE).ToList();
var results = new List<Result>();
foreach (var item in items)
{
var text = item;
var value = 0;
var row = item.Split(' ').ToList();
if (row.Count == 2) // item contains value like: Earth 2
{
text = row[0];
Int32.TryParse(row[1],out value);
}
var result = results.FirstOrDefault(r => r.Item.Equals(text));
if (result == null) // first time item apears in the list
{
result = new Result
{
Item = text,Count = 1,Value = value
};
results.Add(result);
}
else // item added before should increase the count
{
result.Count++;
result.Value += value;
}
}
textBox2.Text = Prettify(results); // lets make the result pretty
}
最后我声明了 Prettify 函数来制作你想要的结果
public String Prettify(List<Result> results)
{
var prettify = "";
int row = 0;
foreach (var result in results)
{
prettify += $"{++row}. {result.Item}"; // 1. Earth
if (result.Count > 1)
prettify += $" x{result.Count}"; // 1. Earth x2
if (result.Value > 0)
prettify += $" {result.value}"; // 1. Earth x2 4
prettify += Environment.NewLine;
}
return prettify;
}
这是输出
我猜核心是对的,你可以自定义它
玩得开心
以上是大佬教程为你收集整理的如何在文本框中加入相同的行并计算它们全部内容,希望文章能够帮你解决如何在文本框中加入相同的行并计算它们所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。