从分隔的字符串填充列表属性

时间:2012-12-04 22:31:20

标签: c# sql-server-2008 entity-framework linq-to-entities ef-code-first

这是一个简单的应用程序,但我对ASP.NET MVC有点新意,所以我在如何实现这个目标时遇到了一些麻烦,因为

我所拥有的是两个班级:

public class BugAssignment
{
    public int BugAssignmentID { get; set; }
    public int BugNumber { get; set; }
    public int UserID { get; set; }
    public virtual User User { get; set; }
}

public class BugAssignmentList
{
    public int BugAssignmentListID { get; set; }
    public string Name { get; set; }
    public List<BugAssignment> BugAssignments { get; set; }
}

我想要做的是填充BugAssignments列表给定用户输入的分隔字符串的BugNumbers(即208,576,403)。我猜它会爆炸字符串,循环并创建BugAssignment对象,存储到列表中并设置BugAssignments属性。我怎么能做到这一点?

此外,我使用实体框架代码优先使用SQL Server 2008作为我的数据库引擎。

2 个答案:

答案 0 :(得分:2)

如果您坚持将字符串转换为字符串数组......

使用C#中的String.Split()将逗号分隔的字符串拆分为字符串对象数组非常简单。

string[] StringArray = String.Split(BugAssignments , ",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

从那里开始,循环遍历数组并完成剩下的工作应该是直截了当的。如果您遇到不同的部分,请告诉我们。

答案 1 :(得分:1)

使用string.Split和Linq Select,以下是编写它的方法:

string BugNumbers = "208,576,403";
int currentUserID = 0;

BugAssignmentList list = new BugAssignmentList
{
    BugAssignments = BugNumbers.Split(',')

        // convert list of numbers to list of BugAssignment objects
        .Select(num => new BugAssignment 
        { 
            BugNumber = int.Parse(num.Trim()),
            UserID = currentUserID 
        })
        .ToList(),
    Name = "assignment list name"
};