如何在C#中以相同的顺序从列表中添加键到哈希表

时间:2018-05-17 05:10:31

标签: c# list hashtable

我有一个整数列表List<int> iFaciltyReqId = new List<int>();,其元素是 enter image description here

我需要像上面的List一样订购下面的哈希表(如果元素不存在则需要排除)

我的哈希表是 enter image description here

结果应该是顺序中的hastable键 1153 1168 1155 1152 1176 676

我尝试如下,但结果不符合我的期望

foreach (var c in iFaciltyReqId)
            {

                foreach (var d in ohmItemSeqs.Keys)
                {
                    if (Convert.ToInt32(c) == Convert.ToInt32(d))
                    {
                        sortedohmItemSeqs.Add(c, ohmItemSeqs.Values);
                    }
                }
            }

,结果为enter image description here 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

我建议你简单地拿走你的列表并返回哈希表中的所有内容,如下所示:

var result = yourList.Where(i => yourHashTable.Contains(i)); // works for both HashSet<int> and Hashtable

答案 1 :(得分:1)

Hashtable基本上是无序的数据结构,因此如果维持订单很重要,您将需要查看替代方案。

如果您希望通过插入确定订单,OrderedDictionary可能是一个合适的选项,但这取决于您对该对象的其他需求。