【发布时间】:2020-04-14 07:45:45
【问题描述】:
我有以下问题。我有一个字符串列表,想拆分这些。之后,我想给每个对象元素一个对列表项的引用。
例子:
List<string> valueList = attr.Split(' ').ToList<string>();
这个列表有这样的项目:
name,string,age,int
对于这个例子,每个 Object 需要获取 2 条信息,首先是名称(例如:“name”或“age”),其次是类型(例如:“string”、“int”)。
现在我想得到一个包含这些信息的对象。所以我创建了对象并将这些对象放入一个列表中。
例子:
List<MyObject> listObjects = new List<MyObject>();
for (int i = 0; i < ValueList.Count; i++)
{
MyObject object = new MyObject();
if (ValueList.Any(s => s.StartsWith(modifier)) == true)
{
object.name = ValueList[i];
object.type = ValueList[i + 1];
}
listObjects.Add(object);
}
但使用我的解决方案,我得到了一个System.ArgumentOutOfRangeException。我对此的解释是 foreach 但我不知道如何获取字符串列表中的每个项目并将它们添加到对象的技术。还有一个问题是 List 的 1 项应该有 2 个元素(名称、类型),但是使用我的方法,我将遍历每个元素的 foreach。在 C# .Net Framework 中有没有更好的方法?
【问题讨论】:
-
您在空格上拆分,但您的初始输入用逗号分隔
-
这是一个例子,所以我的意思是拆分后 List
元素可能看起来像这样。 -
也不清楚 readerValueArray 是什么以及它包含多少元素。这可能是您的 IndexOutOfRangeException 的原因
-
@brstkr 如果您真的想得到帮助,您应该帮助我们了解您的问题。不暴露问题的相关部分并不是很有用。请阅读minimal reproducible example
-
请edit您的问题,这样它实际上显示了您遇到的问题,因为您发布的内容没有。
标签: c# string list object foreach