我在一个应该可以解决问题的控制台应用程序中快速编写了这段代码......假设您正在处理一个具有类似于以下定义的强类型:
public class MyObject
{
public int ID { get; set; }
public string Mukey { get; set; }
public int FieldID { get; set; }
public string Type { get; set; }
public int PercentOfField { get; set; }
public double Acres { get; set; }
}
使用以下内容将满足您的要求(如果我正确理解了这个问题)
var myList = new List<MyObject>() {
new MyObject { ID = 1, Mukey = "1709649", FieldID = 191, Type = "Minor", PercentOfField = 18, Acres = 12.5181 },
new MyObject { ID = 2, Mukey = "1709641", FieldID = 191, Type = "Minor", PercentOfField = 1, Acres = 0.49621 },
new MyObject { ID = 3, Mukey = "1709620", FieldID = 191, Type = "Minor, Critical", PercentOfField = 72, Acres = 49.4322 },
new MyObject { ID = 4, Mukey = "1709622", FieldID = 191, Type = "Minor", PercentOfField = 9, Acres = 5.89865 }
};
for (int i = 0; i < myList.Count; i++)
{
//check if the type is comma delimited
if (myList[i].Type.Contains(","))
{
//get the separate types
string[] types = myList[i].Type.Split(',');
var item = myList[i];
myList.RemoveAt(i);
//for each type, add a new entry in the list
foreach (string theType in types)
{
myList.Insert(
i,
new MyObject
{
ID = item.ID,
Mukey = item.Mukey,
FieldID = item.FieldID,
Type = theType.Trim(),
PercentOfField = item.PercentOfField,
Acres = item.Acres
}
);
// add to i to offset the count for the additional items
// (we want to skip the new items)
i++;
}
}
}