gpt4 book ai didi

c# - 在另一个列表 C# 中搜索整数列表

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:25 25 4
gpt4 key购买 nike

我想在我的字典中找到我的源列表的所有出现。

目前,我正在遍历我的字典,并比较字典的每个值。

Dictionary<string, list<int>> refList.
List<int> sourceList.

foreach(KeyValuePair<string, List<int>> kvp in refDict)
{
List<int> refList = (List<int>)kvp.Value;
bool isMatch = (refList.Count == sourceList.Count && refList.SequenceEqual(sourceList));
if (isMatch)
{
......
......
}
}

我想在我的字典中找到我的源列表中所有出现的索引。

最佳答案

我不明白为什么您需要字典项目的位置(而不是索引!),因为项目的顺序是不确定的,MSDN :

For purposes of enumeration, each item in the dictionary is treated as a KeyValuePair structure representing a value and its key. The order in which the items are returned is undefined.

但无论如何:

准备数据:

IDictionary<string, List<int>> refDict = new Dictionary<string, List<int>>
{
{"item1", new List<int> {1, 2, 3}},
{"item2", new List<int> {4, 5, 6}},
{"item3", new List<int> {1, 2, 3}}
};
List<int> sourceList = new List<int> {1, 2, 3};

搜索索引:

var indexes = refDict.Values
.Select((list, index) => list.SequenceEqual(sourceList) ? index : -1)
.Where(x => x >= 0);

搜索键:

var keys = refDict
.Where(item => item.Value.SequenceEqual(sourceList))
.Select(item => item.Key);

关于c# - 在另一个列表 C# 中搜索整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com