【发布时间】:2015-01-02 04:55:47
【问题描述】:
我有一个这样结构的文本文件:
{A, B, C, D}
{B, E, D}
{C, A, F}
......
第一行代表起始位置,其他为目的地。例如:
A -> B, C, D
B -> E, D
C -> A, F
我有一个名为 Location 的基本类,我在其中保存所有位置和目的地。
Location locA = new Location();
Location locB = new Location();
我有兴趣使用相同的实例位置而不为每个人创建新实例,例如:
Connection(locA, locB));
Connection(locA, locC));
Connection(locA, locD));
Connection(locB, locE);
问题是当我拆分我的文本文件时。我将第一行放在列表中。和另一个列表中的目的地。 :
DKLocations Startloc = new DKLocations();
DKLocations Destloc = new DKLocations();
List<DKLocations> DKLocations = new List<DKLocations>();
这是我的代码:
foreach (var line in File.ReadLines(@"routes.txt"))
{
foreach (Match oMatch in Regex.Matches(line, @"\{([^,]*)"))
{
ComboBox1.Items.Add(oMatch.Groups[1].Value);
Startloc.Identifier = DKLocations.Count().ToString();
Startloc.LocationName.Add(oMatch.Groups[1].Value);
DKLocations.Add(Startloc);
var dest = Regex.Matches(line, @"\p{L}+")
.Cast<Match>()
.Skip(1)
.Select(match => match.Value)
.ToList();
var price = Regex.Matches(line, @"\d+")
.Cast<Match>()
.Select(match => match.Value)
.ToList();
var destAndPrice = dest.Zip(price, (d, p) => new { dest = d, price = p });
foreach (var i in destAndPrice)
{
ListBox1.Items.Add(oMatch.Groups[1].Value + " to " + i.dest + " " + i.price + " kr." + DKLocations.Count().ToString());
}
}
分割时如何给目的地与起始位置相同的实例?
【问题讨论】:
-
听起来您应该将您的位置存储在字典中,以便您可以根据需要调用它们。