C# 如何展开类对象
我想把它弄对,所以我把它简化了 按原样,这将在所有三个文本框中返回空值 我知道“foreach”是不正确的 有人能告诉我如何扩展类对象吗 Default.aspx.csC# 如何展开类对象,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
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, ", ");
}