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

时间:2013-05-15 18:23:29

标签: c# arrays winforms foreach

我有一个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();

任何人都可以指导我。提前致谢

2 个答案:

答案 0 :(得分:0)

您是否坚持使用 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.     
  3. 在这种情况下,不需要使用新行。但如果你想使用如下所示:

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

答案 1 :(得分:0)

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

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

这至少是你需要的最低限度?您是否能够在Debug中看到_clist具有您想要显示的整个字符串?