我试图在文本文件中组织信息,我认为一个好方法是将文件的每一行定义为自己的List Item,然后用逗号分隔每个List条目但是我无法弄清楚如何解析或拆分列表项以便以后使用它们。
这将读取文件并返回包含五个条目的列表:
public static List<String> ImportVehicalList() {
List<String> vehiclesAndOptions = new List<string>();
StreamReader sr = null;
try { // Attempt to open text file
String filePath = HttpContext.Current.Server.MapPath("~/srcDocuments/modelsAndOptions.txt");
String modelOptions; // Line to be added to List
using (sr = new StreamReader(filePath)) {
while ((modelOptions = sr.ReadLine()) != null) {
// Tried to split it before creating the list but
// this did not work.
//modelOptions.Split(',').ToList<String>();
vehiclesAndOptions.Add(modelOptions);
}
}
}
catch (Exception e) { } // File Not Found Catch
finally { try { sr.Close(); } catch (Exception ex) { } } // Cannot close the reader
return vehiclesAndOptions;
}
这就是我将列表加载到asp.net下拉列表中的方法。我希望在这里拆分列表,以便只有模型显示在下拉列表中。
protected void Page_Load(object sender, EventArgs e) {
List<String> vehicalList = new List<string>();
vehicalList = Utils.ImportVehicalList();
foreach (String i in vehicalList) {
ddlModels.Items.Add(i);
//Response.Write(i);
}
// Binds the list to drop down menu ddlModels
//ddlModels.DataSource = vehicalList;
//ddlModels.DataBind();
}
这里有很多关于解析信息和真实的帖子,我不太熟悉它,我还没有找到一个我能用我的代码实现的解决方案。以下是我要研究的一些资料来源:
How to split() a delimited string to a List<String>
https://www.dotnetperls.com/convert-list-string
是否可以在逗号上解析列表项,或者只能先通过拆分字符串然后将每个项添加到列表来完成?
答案 0 :(得分:1)
我认为你正在寻找的是string.split,当你循环时。所以根据我的理解,每一行都包含一个具有如下属性的模型:
Model, attribute, attribute, attribute
并且您希望每个模型都有一个属性列表。在你的情况下,这变为:
string[] arr = vehicleAndoptions.Split(',');
string model = arr[0];// or arr.First(); if you prefer linq
List<string> attributes = arr.Skip(1).AsList<string>();