使用foreach循环在Array中存储多个字符串,并以另一种形式显示
本文关键字:另一种 显示 字符串 循环 foreach Array 存储 使用 | 更新日期: 2023-09-27 18:13:39
我有一个DataGridView,其中我有多行说(15行)。我想添加一些列值并将它们存储在使用foreach
循环的数组中。然后我想以另一种形式显示数组(包含多个字符串)。
目前我使用stringBuilder来存储字符串和显示,但它只显示最后一个字符串存储在它。
StringBuilder listOrderStatus = new StringBuilder();
foreach (DataGridViewRow rw in grdData.Rows)
{
string _idNumber = rw.Cells[6].Value.ToString();
string _orderNo = rw.Cells[13].Value.ToString();
double _ordTotalSpace = double.Parse(rw.Cells[17].Value.ToString());
double _ordDoneSpace = double.Parse(rw.Cells[18].Value.ToString());
double _ordRmainSpace = double.Parse(rw.Cells[19].Value.ToString());
double _TotalSpace = getTotalArea();
double _DoneSpace = getDoneArea();
double _RmainSpace = getRmainArea();
if(_ordTotalSpace ! = _TotalSpace){
string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
//I want to store this string in the array
listOrderStatus.Append(value);
listOrderStatus.AppendLine();
}
else{
string value2 = "Valid Order: Order number" + _orderNo + "ID No." + _idNumber;
//I want to store this string in the array
listOrderStatus.Append(value2);
listOrderStatus.AppendLine();
}
}
string innerString = listOrderStatus.ToString();
//This a new form to display strings in simple multiline-TextBox (Never mind, this is client request :P)
var myForm = new Other.frmDisplayData();
myForm._clist = innerString;
myForm.Show();
有谁能给我指路吗?提前感谢
您坚持使用StringBuilder吗?如果没有,你可以使用如下代码:
定义为全局,而不是StringBuilder:
List<string> listOrderStatus = new List<string>();
和
string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
listOrderStatus.Add(value);
然后 myForm._clist = listOrderStatus;
注意:
你必须定义_clist作为字符串的列表,就像我写的第一行代码。
在这种情况下不需要使用new line,但是如果你想使用下面的命令:
string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
value += System.Environment.NewLine;
- 你也可以使用字典定义:
Dictionary<int,string> Name = new Dictionary<int,string>();
如何使用_clist分配给multiLineTextBox.Text?
multilineTextBox.Multiline = true;
multilineTextBox.Scrollbars = Scrollbars.Both;
multilineTextBox.Text = _clist;
这至少是你需要的最小值吧?您是否能够在调试中看到_clist包含您想要显示的整个字符串?