使用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();
有谁能给我指路吗?提前感谢

使用foreach循环在Array中存储多个字符串,并以另一种形式显示

您坚持使用StringBuilder吗?如果没有,你可以使用如下代码:

定义为全局,而不是StringBuilder:

List<string>  listOrderStatus =  new List<string>();

string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
listOrderStatus.Add(value);
然后

 myForm._clist = listOrderStatus;

注意:

  1. 你必须定义_clist作为字符串的列表,就像我写的第一行代码。

  2. 在这种情况下不需要使用new line,但是如果你想使用下面的命令:

string value = "Invalid Order: Order number" + _orderNo + "ID No." + _idNumber;
value += System.Environment.NewLine;
  1. 你也可以使用字典定义:
Dictionary<int,string> Name = new Dictionary<int,string>();

如何使用_clist分配给multiLineTextBox.Text?

multilineTextBox.Multiline = true;
multilineTextBox.Scrollbars = Scrollbars.Both;
multilineTextBox.Text = _clist;

这至少是你需要的最小值吧?您是否能够在调试中看到_clist包含您想要显示的整个字符串?