我想使用StringBuilder()类创建一个字符串。我有一些员工记录的集合。 Employee的每条记录都有firstName,lastName,city等列。 我想要创建的字符串将分别具有上述列的值。 为此,我需要创建一个类
class Columns
{
string Firstname
{
startPosition = 1;
length = 32;
}
string LastName
{
startPosition = 33;
length = 32;
}
}
在我正在构建的字符串中,我需要在所提到的相应起始位置插入Firstname,Lastname的值。我是新手,我需要帮助来创建上面的课程。上面指定的代码只是类应该是什么样的原型,但我不知道如何创建它。我需要在所有列中都存在属性startPosition和length,并且这些值需要进行硬编码。对不起,如果我的问题很模糊。请帮忙..
答案 0 :(得分:1)
首先让我告诉你,没有"子属性"这样的东西。你可以做的是拥有一个类的属性/字段,它暴露属性本身。
因此,您可能希望为一个class
创建Column
,然后创建一个List
来跟踪您的列,如下例所示。
public class Column
{
public string Name { get; set; }
public int StartPos { get; set; }
public int Length { get; set; }
}
public class Test
{
private List<Column> Columns = new List<Column>();
public Test()
{
this.Columns.Add(new Column { Name = "FirstName", StartPos = 1, Length = 32 });
this.Columns.Add(new Column { Name = "LastName", StartPos = 33, Length = 32 });
}
public string GetThatString(string str)
{
foreach (var col in this.Columns)
{
// Do what you need. Sample:
var item = str.Substring(col.StartPos, col.Length);
Console.WriteLine("{0}: {1}", col.Name, item);
}
}
}
然后,您可以迭代列表中的项目,让您的字符串生成器完成您需要的工作。 当然,您也可以为每个列创建一个属性,而不是为所有列创建一个列表。