Заполните свойство списка из строки с разделителями

Это своего рода простое приложение, но я немного новичок в 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. Как я мог сделать это?

Кроме того, я использую Entity Framework Code-first с SQL Server 2008 в качестве своей базы данных.

2 ответа

Если вы застряли на преобразовании строки в массив строк...

Разделить запятую строку в массив строковых объектов довольно просто, используя String.Split() в C#.

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

Оттуда должно быть просто пройти через массив и выполнить оставшуюся часть работы. Если вы застряли в другой части, дайте нам знать.

Используя 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"
};
Другие вопросы по тегам