我有這個邏輯問題和映射兩個不同的表。向用戶呈現一張表格供他們從中選擇項目。然後,我們需要將他們的選擇映射到更大的系統識別項目列表。某些系統項目是用戶項目的組合。查找列表中的衝突
用戶項目=
關鍵字|商品號
1 | A
2 | B
3 | C
4 | D
5 | E
6 | F
System Items =
SystemCode | UserItemsMapping
EG1 | 1
EG2 | 2
EG3 | 1,2
EG4 | 1,3
EG5 | 2,3
EG6 | 4
EG7 | 5
EG8 | 5,6
EG9 | 3
EG10 | 4,5,6
因此,如果用戶輸入A,B,C,D,E,F [= 1,2,3,4,5,6]。系統應該能夠確定衝突的映射。
選定項目A,B &Ç有衝突,請從以下中選擇:
EG3(1,2)+ EG9(3)或
EG4(1,3)+ EG2(2)或
EG5(2,3)+ EG1(1)
選定項目d,E &˚F有衝突,請從以下中選擇:
EG8(5,6)+ EG6(4)或
EG10 (4,5,6)
這一切都是在C#中使用列表和內容的自定義類來完成的,e,g List和List。
編輯: 所以我設法做到這一點:
1)獲取其中的任何用戶項的所有系統代碼。
2)具有多於用戶項目的所有系統代碼都轉到一個列表。所有組合代碼都轉到另一個。
3)循環遍歷組合列表,如果用戶項目針對多個系統代碼,則將其添加到衝突列表中。
所以現在我有這樣的衝突列表:
[代碼]
public class ConflictSets
{
public List<SystemCodes> SystemCodesList {set; get;}
public List<int> UserCodesList {set; get;}
}
public class SystemCodes
{
public string Code {set; get;}
public string UserItems {set; get;}
}
[/代碼]
的問題是,我的名單ConflictSetsList只有對衝突的在裏面。因此,對於上面的示例:
ConflictSetsList [0] .SystemCodesList [0] = EG3
ConflictSetsList [0]。SystemCodesList [1] = EG4
ConflictSetsList [1] .SystemCodesList [0] = EG3
ConflictSetsList [1] .SystemCodesList [1] = EG5
ConflictSetsList [2] .SystemCodesList [0] = EG4
ConflictSetsList [2 ] .SystemCodesList [1] = EG5
我真正想要的是具有這樣一個類:
ConflictSetsList [0]可供選項[0] .SystemCodesList [0] = EG3
ConflictSetsList [0]可供選項[0] .SystemCodesList [1] = EG9
ConflictSetsList [0] .Options [1] .SystemCodesList [0] = EG4
ConflictSetsList [0]可供選項[1] .SystemCodesList [1] = EG2
ConflictSetsList [0]可供選項[2] .SystemCodesList [0] = EG5
ConflictSetsList [0]可供選項[2] .SystemCodesList [ 1] = EG1
這樣做更有意義嗎?對不起,我不擅長解釋這一點。
這是來自這些輸入的數據:
dtSystemCodes = new DataTable。 Where Row [「UserInputKeys」] = xx | yy
dtUserItems = new DataTable。 Where Row [「Key」] = xx
List inKeys = new List(){1,2,3,4,5,6};
謝謝。
問題是什麼?你嘗試了什麼? –
問題是我不知道如何從邏輯上完成列表。我試過的是這樣的:獲取所有系統項,循環遍歷並找到所有具有關聯用戶輸入密鑰的代碼。然後通過該列表並將所有組合添加到單獨的類。我想要另一個名爲ConflictSets的類來列出所有受影響的衝突及其相關的系統代碼。 – user3769327
通過編輯您的問題來顯示您嘗試過的內容。 – allonhadaya