循环遍历字符串数组以创建这些字符串的类变量

所以我在一个名为 SchoolData 的 .cs 文件中有这个代码,它有一个类和一个列表。


public static List<YearGroupsData> yearGroupsDataList = new List<YearGroupsData>();


public class YearGroupsData

{

    public int id { get; set; }

    public int year { get; set; }

    public string groupName { get; set; }

    public int subject { get; set; }

}

但是,我正在尝试在另一个 .cs 脚本中使用循环来建立网络连接并从网站获取数据,我没有包含连接信息或一些脚本,因为这不是部分出错了……


private IEnumerator ViewYearGroups()

{

   //Some code for connection here

    yield return viewYearGroups;

    string yearGroupsDataString = viewYearGroups.text;

    yearGroups = yearGroupsDataString.Split(';');



    foreach (string yearGroup in yearGroups)

    {

        YearGroupsData yearGroupsData = new YearGroupsData()

        {

            id = Int32.Parse(GetDataValue(yearGroup, "Id:")),

            year = Int32.Parse(GetDataValue(yearGroup, "Year:")),

            groupName = GetDataValue(yearGroup, "GroupName:"),

            subject = Int32.Parse(GetDataValue(yearGroup, "Subject:")),

        };

        SchoolData.yearGroupsDataList.Add(yearGroupsData);

    }

}

GetDataValue 是搞砸的部分。它给了我 ArgumentOutOfRangeException,我不知道为什么。如果我不在循环中使用它,它会起作用,我也尝试了 for 循环,但仍然相同,有人知道发生了什么吗?


public string GetDataValue(string data, string index)

{

    string value = data.Substring(data.IndexOf(index) + index.Length);

    if (value.Contains("|"))

    {

        value = value.Remove(value.IndexOf("|"));

    }

    return value;

}


MYYA
浏览 170回答 3
3回答

饮歌长啸

我使用 .Split 在每个分号处划分字符串的地方是问题所在。我正在拆分的字符串在最后一个分号之后有一个空格,它从中创建了一个空索引。我用了&nbsp;yearGroups = yearGroups.Take(yearGroups.Count() - 1).ToArray();删除最后一个为空的索引。trycatch 方法帮我找到了这个,谢谢。
打开App,查看更多内容
随时随地看视频慕课网APP