将数组值传递给对象类
本文关键字:对象 数组 值传 | 更新日期: 2023-09-27 18:31:47
我想知道如何在 C# 中将值从数组传递和存储到类对象。
这是我的主程序代码
public partial class Form1 : Form
{
List<Configuration> lines = new List<Configuration>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.listBox1.Items.Clear();
//Read in every line in the file
using (StreamReader reader = new StreamReader("file.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string textfile = line;
string[] array = new string[] { "''n" };
string[] parts = textfile.Split(array, StringSplitOptions.RemoveEmptyEntries);
///////////////////////////////////////////////////
for (int i = 0; i < parts.Length; i++)
{
lines.Add(new Configuration(parts[i],0));
}
//lines.Add(new Configuration(line));
//listBox1.Items.Add(line);
}
}
listBox1.DataSource = lines;
listBox1.DisplayMember = "CompanyName";
}
}
我的类对象代码
class Configuration
{
string _CompanyName;
int _Employees;
public Configuration(string companyname, int number_of_Employees)
{
_CompanyName = companyname;
_Employees = number_of_Employees;
}
//program properties and validation
public string CompanyName
{
set
{
_CompanyName = value;
}
get
{
return _CompanyName;
}
}// End of levelname validation
//program properties and validation
public int EmployeesNumber
{
set
{
_Employees = value;
}
get
{
return _Employees;
}
}// End of levelname validation
}
目前,程序读取一个文本文件,其中包含公司列表和每个公司的员工人数。
Microsoft'n92200
Google'n33077
Apple'n60400
IBM'n426751
Facebook'n3000
当程序运行时,它会将公司名称和员工数量拆分为一个数组。 该部分工作正常,它只是将所有内容存储到字符串公司名称中。每当我尝试修改它以将值存储在类对象的不同字段中时,我都会出错。
当您将行与示例中的行分开"''n"
时,您将获得一个包含两个项目的数组。第一项是'n
左侧的项目,第二项是右侧的项目。
在代码中,您将循环遍历这两个项,并创建新的Configuration
对象,并将每个对象作为构造函数的第一个参数传入。
构造函数接受两个参数,名称和数字。 在每一行上,拆分的第一项是名称,第二项是数字(以字符串表示形式表示形式)。 创建对象时,需要同时使用这两个部分作为第一个参数传递给构造函数,而不是将这两个部分分别传递给构造函数。 虽然您将数字作为字符串,但您需要先将其转换为整数才能在构造函数中使用它......
一旦你把那部分整理好了,我相信这应该可以解决你遇到的问题(不管是什么)。
var configs =
from line
in reader.ReadToEnd().Split(new[] { ''n' }, StringSplitOptions.RemoveEmptyEntries)
let pair = line.Split(new[] { "''n"}, StringSplitOptions.RemoveEmptyEntries)
select new Configuration(companyname: pair.First(), number_of_Employees: int.Parse(pair.Last()));
lines = configs.ToList();