这是我在这个网站的第一篇文章,我对这个社区非常满意.
我正在创建一个生成器电子邮件系统.这包括获取学生的姓名,生成一些模式,检查电子邮件地址是否可用,最后将其添加到数据库中.
例如,我的名字是"Oscar Daniel",我的姓氏是"Fimbres Puente".系统必须生成odfimbresp@domain.com(实际上它会生成许多模式,这只是其中之一).
我有一个名为Person的类,构造函数接收名字和姓氏.生成模式.像这样:
public class Person
{
public string FirstName { get; set; }
public string LastName1 { get; set; }
public string LastName2 { get; set; }
public string Email { get; set; }
public string[] FirstName_Array { get; set; }
public string[] LastName1_Array { get; set; }
public string[] LastName2_Array { get; set; }
public Person(string firstName, string lastName1, string lastName2)
{
...
// it is necessary to split each string in an array
FirstName_Array = SplitName(firstName);
LastName1_Array = SplitName(lastName1);
LastName2_Array = SplitName(lastName2);
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我需要使用像分隔符这样的空格来分割每个字符串.例如,属性如下:
名:奥斯卡丹尼尔
名字(阵):{Oscar,Daniel}
因此,我的问题是:有没有办法可以删除属性数组?因为我认为我是多余的.我试图只为他们添加一个名为ToArray()的函数,但我不能这样做.
有任何问题或疑问请告诉我.
只是把它扔出去.我认为你有一个Person类,其中包含诸如firstname,last name等属性.你需要采取一些操作来生成一些模式,例如firstname数组的firstletter + lastname的前4个字母+ some pattern@domain.com.
我相信你正试图避免冗余的数组属性.如果是这样,为什么你没有为每个模式的方法,如,
public class person
{
public string firstname { get;set;}
public string lastname { get;set;}
public person(string fname, string lname)
{
firstname = fname;
lastname = lname;
}
public string GetEmailRespPattern()
{
//split firstname, take what you want
//take what you want from last name.
// add extra information.
//concatenate and return it.
}
}
Run Code Online (Sandbox Code Playgroud)
这可能过于简单,当然,您必须每次重新计算模式,但它简单易读.这一切都取决于你将如何使用它.
您甚至可以使用正则表达式从不同的属性中提取所需的数据.如果您有特定的规则,则很容易编写它们.就像介绍一样,这里有关于正则表达式的一些信息.
但是要回答标题中的问题,是的,字符串属性(或任何对象)可以有一个扩展方法,例如ToArray()(您想要的任何名称).看到这里.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |