2013-10-29 26 views
0

我有2個類,主題和設置。 主題具有主題名稱和設置列表作爲屬性。 A設置有一個鍵,一個值和另一個設置列表爲可選項。使用正則表達式的正確關聯

截至目前,我有一個主題列表和我從數據庫中檢索的設置列表。 我想用好(主題/設定)好的設定

實例相關聯:

Topic#1.TopicName = Grandpa 
Setting#1.Key = Grandpa/Papa 
Setting#2.Key = Grandpa/Mama 
Setting#3.Key = Grandpa/Papa/Baby 

根據我的格式,主題#1的設置(設置#1和設置#2列表) 設置#2包含設定(目前設定#3)

我的代碼清單是

var topicList = new List<Topic>(); 
foreach (var topics in topicRetrieved) 
{ 
    var topic = new Topic() 
       { 
        TopicName = topics.Key, 
        Override = topics.Override, 
        Source = topics.Source, 
       }; 

    foreach (var topicSettings in topicSettingRetrieved) 
    { 
     string parent = topic.TopicName + "/"; 
     if(System.Text.RegularExpressions.Regex.IsMatch(topicSettings.Key,parent)) 
     { 
     var setting = new Setting 
         { 
         Key = topicSettings.Key, 
         Value = topicSettings.Value 
         }; 
     topic.SettingCollection.Add(setting); 
     } 
    } 
    topicList.Add(topic); 
    } 
    return topicList.ToArray(); 
} 

我的問題,現在是話題#1將始終有設置列表 (#1,#2和#3),因爲它包含字符串「爺爺」。 我只想讓主題#1包含設置#1和設置#2 我想能夠將設置#3添加到正確的地方(設置#2) 設置#3 =爺爺/爸爸/寶寶 - ---->設置#2 =爺爺/爸爸 然後 我的設置#2將轉到主題#1 任何想法?

+0

你們是不是要在所有設置匹配「爺爺」,但只有當它有一個'/'在設置字符串(而不是兩個)? – sln

回答

0

試試這個string parent = "^"+ topic.TopicName + "/[^/]*$";