如何解决c#list <t>;如何添加像foreach循环但没有foreach的对象?
| 我是C#的新手,需要列表和对象方面的帮助。 强烈建议编辑。 我真正想做的是List<Item> MyList = new List<Item>();
Item MyItem = new Item();
MyItem.Colour = \"red\";
MyList.Add(MyItem);
MyItem.Colour = \"blue\";
MyList.Add(MyItem);
MyItem.Colour = \"white\";
MyList.Add(MyItem);
现在,我的列表将包含3个元素-红色,蓝色,白色。
我想我可以通过以下方式做到这一点:
Item MyItem = new Item();
MyItem.Colour = \"red\";
MyList.Add(MyItem);
MyIten = new Item();
MyItem.Colour = \"blue\";
MyItem = new Item();
MyList.Add(MyItem);
MyItem = new Item();
MyItem.Colour = \"white\";
MyList.Add(MyItem);
再次简化。根据我的真实数据,还有更多元素。
我会尝试的;
TIA-安德鲁
解决方法
根据您的描述,我猜您有一个范围界定问题。您的代码应该看起来像这样……请特别注意每个变量的设置位置。同样,在这些类型的场景中,创建一个称为“ 2”的静态工厂方法(从字符串构造对象)通常会很有帮助。
string line;
System.IO.StreamReader file = new System.IO.StreamReader(filename);
Job myJob = null;
Detail myDetail = null;
while((line = file.ReadLine()) != null)
{
var lineType = getLineType(line);
switch(lineType){
case Job:
myJob = new Job();
break;
case newDetail:
if(myDetail != null)
{
myJob.Details.Add(myDetail);
}
Detail myDetail = new Detail();
break;
case continueDetail:
//set some detail properties
break;
}
}
再一次
List<Item> MyList = new List<Item>();
Item MyItem = new Item();
MyItem.Colour = \"red\";
MyList.Add(MyItem);
MyItem = new Item(); //<-- this is what you are missing
MyItem.Colour = \"blue\";
MyList.Add(MyItem);
HTH,但您的问题尚不清楚。
,在这种情况下,读取文件的更好方法是使用StreamReader,该包装将您读取的FileStream包装起来。 StreamReader允许您逐行遍历文件行,而无需事先读取整个文件。
因此,您可以执行以下操作:
while((var line = streamReader.ReadLine())!= null)
{
//在此处遍历文件
}
在while循环内,您可以设计一个简单的状态机,该状态机根据文件中的位置读取标头,作业或作业详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。