Моего словаря не отображается, возвращается правильное значение:словаря возвращение неверного значения для ключа
foreach (string line in lines)
{
if (line.Contains("INSERT INTO ATTACHMENT VALUES"))
{
string AttachementID = line.Split('(', ',')[1];
string FileName = AttachementsDictionary[AttachementID];
string BacklogScrumID = BacklogLookupDictionary[AttachementID];
BacklogItem Story = BacklogItemDictionary[BacklogScrumID];
Product Product = ProductDictionary[Story.ProductScrumId];
}
}
Вопрос возникающий на:
BacklogItem Story = BacklogItemDictionary[BacklogScrumID];
Вот простой класс:
public class BacklogItem
{
public string ProductScrumId { get; set; }
public string StoryTitle { get; set; }
}
Процентная стоимость: -324048562862518297
Однако, вместо того, чтобы вернуться связанный объект BacklogItem она возвращается очень 1-ый в словаре:
Ключ -324048562862518297 = -922008489156936615 так почему же неправильный объект возвращается?
Edit: Как словарь населен:
foreach (string line in lines)
{
if (line.Contains("INSERT INTO ATTACHMENT"))
{
AttachementsDictionary.Add(line.Split('(', ',')[1], line.Split('\'', '\'')[1]);
}
if (line.Contains("INSERT INTO BACKLOGITEM_ATTACHMENT"))
{
if (!BacklogLookupDictionary.ContainsKey(line.Split('(', ',')[1]))
{
BacklogLookupDictionary.Add(line.Split(',', ')')[1], line.Split('(', ',')[1]);
}
}
if (line.Contains("INSERT INTO BACKLOGITEMEJB VALUES"))//-324048562862518297
{
CurrentBacklogItem.ProductScrumId = Regex.Split(line, ",(?=(?:[^']*'[^']*')*[^']*$)")[7];
CurrentBacklogItem.StoryTitle = Regex.Split(line, ",(?=(?:[^']*'[^']*')*[^']*$)")[12];
BacklogItemDictionary.Add(line.Split('(', ',')[1], CurrentBacklogItem);
}
if (line.Contains("INSERT INTO PRODUCTEJB VALUES"))
{
CurrentProduct.ProductName = line.Split('\'', '\'')[1].Replace(@"'", string.Empty);
CurrentProduct.StoryPrefix = Regex.Split(line, ",(?=(?:[^']*'[^']*')*[^']*$)")[4].Replace(@"'", string.Empty);
ProductDictionary.Add(line.Split('(', ',')[1], CurrentProduct);
}
}
Как заполняется словарь? –
Да, вы уверены, что тот же предмет не находится в двух местах в словаре? – DLeh
Похоже, одно и то же значение сопоставляется с двумя разными ключами в словаре. Что такое словарная запись для ключа '" 324048562862518297 "'? – Lee