在 C# 中使用 LINQ 进行字典操作

发布于 2024-09-28 20:46:17 字数 694 浏览 0 评论 0原文

我有一个字典,就像

Dictionary<String, List<String>> MyDict = new Dictionary<string, List<string>>
{
    {"One",new List<String>{"A","B","C"}},
    {"Two",new List<String>{"A","C","D"}}
};

我需要从该字典中获取 List 一样,该列表应该包含与上述字典的值不同的项目。

因此生成的列表将包含 {"A","B","C","D"}

现在我正在使用 for 循环和 Union 操作。就像

List<String> MyList = new List<string>();
for (int i = 0; i < MyDict.Count; i++)
{
    MyList = MyList.Union(MyDict[MyDict.Keys.ToList()[i]]).Distinct().ToList();
}

任何人都可以建议我一种在 LINQ 或 LAMBDA 表达式中执行此操作的方法吗?

I'm having a Dictionary like

Dictionary<String, List<String>> MyDict = new Dictionary<string, List<string>>
{
    {"One",new List<String>{"A","B","C"}},
    {"Two",new List<String>{"A","C","D"}}
};

I need to get a List<String> from this dictionary, The List should contain Distinct items from the values of the above dictionary.

So the resulting List will contain {"A","B","C","D"}.

Now I'm using for loop and Union operation. Like

List<String> MyList = new List<string>();
for (int i = 0; i < MyDict.Count; i++)
{
    MyList = MyList.Union(MyDict[MyDict.Keys.ToList()[i]]).Distinct().ToList();
}

Can any one suggest me a way to do this in LINQ or LAMBDA Expression.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

述情 2024-10-05 20:46:17
var items=MyDict.Values.SelectMany(x=>x).Distinct().ToList();

或者另一种选择:

var items = (from pair in MyDict
             from s in pair.Value
             select s).Distinct().ToList();
var items=MyDict.Values.SelectMany(x=>x).Distinct().ToList();

Or an alternative:

var items = (from pair in MyDict
             from s in pair.Value
             select s).Distinct().ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文