Заполните свойство списка из строки с разделителями
Это своего рода простое приложение, но я немного новичок в 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"
};