Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找列表中的冲突_C# - Fatal编程技术网

C# 查找列表中的冲突

C# 查找列表中的冲突,c#,C#,我对逻辑和映射两个不同的表有这个问题。将向用户显示一个表,供他们从中选择项目。然后,我们需要将他们的选择映射到一个更大的系统识别项列表。某些系统项是用户项的组合 用户项目= 关键项目 1 | A 2 | B 3 | C 4 | D 5 | E 6 | F 系统项目= 系统代码|用户项映射 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

我对逻辑和映射两个不同的表有这个问题。将向用户显示一个表,供他们从中选择项目。然后,我们需要将他们的选择映射到一个更大的系统识别项列表。某些系统项是用户项的组合

用户项目= 关键项目 1 | A 2 | B 3 | C 4 | D 5 | E 6 | F

系统项目= 系统代码|用户项映射 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和C存在冲突,请从以下项目中选择: EG3 1,2+EG9 3或 EG4 1,3+EG2或 EG5 2,3+EG1 1 所选项目D、E和F存在冲突,请从以下项目中选择: EG8 5,6+EG6 4或 EG10 4,5,6

这一切都是在C中完成的,使用列表和表内容的自定义类,例如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;}
}
[/code]

问题是我的列表ConflictSetList中只有成对的冲突。因此,对于上述示例: 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]。选项[1]。SystemCodesList[0]=EG4 ConflictSetsList[0]。选项[1]。SystemCodesList[1]=EG2 ConflictSetsList[0]。选项[2]。SystemCodesList[0]=EG5 ConflictSetsList[0]。选项[2]。SystemCodesList[1]=EG1

这更有意义吗?对不起,我不太擅长解释这个

这是来自以下输入的数据: dtSystemCodes=新数据表。其中行[UserInputKeys]=xx | yy dtUserItems=新数据表。其中,行[键]=xx List inKeys=新列表{1,2,3,4,5,6}


谢谢。

最简单的解决方案是制作一个2d布尔数组,所有映射的长度为[1+2^示例数,示例数]

valid  EG1 EG2 EG3 ... EG10 

0       0  0    0       0    
1       0  0    0       1
        ...
1       1  1    1       1
0=假,1=真 在for循环中测试每一行的有效性,并将结果放入第一列
然后在第一列中列出了所有可能的映射表

问题出在哪里?你尝试了什么?问题是我不知道如何逻辑地做列表。我尝试的是:获取所有systemitems,循环查找所有与用户输入键关联的代码。然后浏览该列表并将所有组合添加到单独的类中。我想要另一个名为ConflictSets的类,该类将列出所有受影响的冲突及其关联的系统代码。通过编辑您的问题显示您的尝试。