Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何展开类对象_C#_Asp.net_Class_Ado.net - Fatal编程技术网

C# 如何展开类对象

C# 如何展开类对象,c#,asp.net,class,ado.net,C#,Asp.net,Class,Ado.net,我想把它弄对,所以我把它简化了 按原样,这将在所有三个文本框中返回空值 我知道“foreach”是不正确的 有人能告诉我如何扩展类对象吗 Default.aspx.cs protected void Button1_Click(object sender, EventArgs e) { List<dataclass> returnedData = Getdata(); foreach (var dataclass0 in returne

我想把它弄对,所以我把它简化了

按原样,这将在所有三个文本框中返回空值

我知道“foreach”是不正确的

有人能告诉我如何扩展类对象吗

Default.aspx.cs

    protected void Button1_Click(object sender, EventArgs e)
    {
        List<dataclass> returnedData = Getdata();
        foreach (var dataclass0 in returnedData)
        {
            TextBox1.Text = dataclass0.item1;
            TextBox2.Text = dataclass0.item2;
            TextBox3.Text = dataclass0.item3;
        }
    }
    public static List<dataclass> Getdata()
    {
        List<dataclass> returndata = new List<dataclass>();
        dataclass dc = new dataclass();
        dc.item1 = "a";
        dc.item2 = "b";
        dc.item3 = "c";
        returndata.Add(dc);
        return returndata;
    }

下面的代码将生成3个字符串(每个文本框一个),然后将它们分配给相应的文本属性。 它使用
StringBuilder
优化连接
AppendLine
有助于将不同的连接值隔开:
.Replace(Environment.NewLine,”)
稍后将换行符替换为“,”;如果不需要将值隔开,只需删除
.Replace(Environment.NewLine,“,”)
并将
AppendLine
替换为
Append

protected void Button1_Click(object sender, EventArgs e)
{
    var sbText1 = new StringBuilder();
    var sbText2 = new StringBuilder();
    var sbText3 = new StringBuilder();

    var returnedData = Getdata();
    foreach (var dataclass0 in returnedData)
    {
        sbText1.AppendLine(dataclass0.item1);
        sbText2.AppendLine(dataclass0.item2);
        sbText3.AppendLine(dataclass0.item3);
    }

    TextBox1.Text = sbText1.ToString().Replace(Environment.NewLine, ", ");
    TextBox2.Text = sbText2.ToString().Replace(Environment.NewLine, ", ");
    TextBox3.Text = sbText3.ToString().Replace(Environment.NewLine, ", ");
}
问候,,
Daniele.

文本框。文本从不返回
null
,即使您指定null,它也会返回
“”
。但在这种情况下,它显然具有值
a
b
c
。但是,如果只想为
文本框
指定一个值,为什么要使用
列表
?如果有多个项,循环只会覆盖最后一个值。在这种情况下如何定义dataclass0?我不确定stringbuilder如何工作,但文本框是空的。stringbuilder只是避免在每次连接时重新分配字符串对象:这是连接字符串的更好方法,但不一定是正确的方法;它适合串联许多字符串,就像您的情况一样。关于文本框为空,我可以说这可能是页面刷新的问题:您是否在方法执行结束时调试检查了Text属性?
protected void Button1_Click(object sender, EventArgs e)
{
    var sbText1 = new StringBuilder();
    var sbText2 = new StringBuilder();
    var sbText3 = new StringBuilder();

    var returnedData = Getdata();
    foreach (var dataclass0 in returnedData)
    {
        sbText1.AppendLine(dataclass0.item1);
        sbText2.AppendLine(dataclass0.item2);
        sbText3.AppendLine(dataclass0.item3);
    }

    TextBox1.Text = sbText1.ToString().Replace(Environment.NewLine, ", ");
    TextBox2.Text = sbText2.ToString().Replace(Environment.NewLine, ", ");
    TextBox3.Text = sbText3.ToString().Replace(Environment.NewLine, ", ");
}