gpt4 book ai didi

c# - 如何确保 List 只包含序列中的每个字符串一次

转载 作者:太空狗 更新时间:2023-10-29 20:17:49 24 4
gpt4 key购买 nike

假设我有一个字符串列表,如下所示:

var candidates = new List<String> { "Peter", "Chris", "Maggie", "Virginia" };

现在我想验证另一个 List<String> ,我们称它为list1 , 恰好包含每个候选人一次。我怎样才能简洁地做到这一点?我想我可以使用 Intersect() .我也想得到失踪的候选人。

private bool ContainsAllCandidatesOnce(List<String> list1)
{
????
}


private IEnumerable<String> MissingCandidates(List<String> list1)
{
????
}

顺序无关紧要。

最佳答案

就速度而言,这可能不是最优的,但两个查询都足够短,可以放在一行中,而且很容易理解:

private bool ContainsAllCandidatesOnce(List<String> list1)
{
return candidates.All(c => list1.Count(v => v == c) == 1);
}

private IEnumerable<String> MissingCandidates(List<String> list1)
{
return candidates.Where(c => list1.Count(v => v == c) != 1);
}

关于c# - 如何确保 List<String> 只包含序列中的每个字符串一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508183/

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