比较字符串中的字符是否是 C# 中第二个字符串的子集
本文关键字:字符串 第二个 子集 字符 比较 是否是 | 更新日期: 2023-09-27 17:56:05
我正在开发一个游戏,我想检查一个字符串的字符是否包含在另一个字符串中。显然,一组将是我的首选,但我想考虑重复项。例如:
"met".IsContainedWithin("meet"); => true
"meet".IsContainedWithin("met"); => false
多集会很好,但听起来 C# 没有这样的东西。我可以迭代地执行此操作,但我想知道是否有更简单的方法(也许使用 LINQ)。谢谢!
编辑:
我不太清楚。我希望它返回 true,无论字母的顺序如何:
"git".IsContainedWithin("light")=> true
"pall".IsContainedWithin("lamp")=> false
这对
我有用:
public static bool IsContainedWithin(this string @this, string container)
{
var lookup = container.ToLookup(c => c);
return @this.ToLookup(c => c).All(c => lookup[c.Key].Count() >= c.Count());
}
我像这样测试它:
var tests = new []
{
"met".IsContainedWithin("meet"),
"meet".IsContainedWithin("met"),
"git".IsContainedWithin("light"),
"pall".IsContainedWithin("lamp"),
};
我得到了这些结果:
True
False
True
False