我有一个预先定义的字符串为Follows。
string preDefined="abc"; // or i can use char array in here
string value="ac";
string value1="abw";
我需要一些函数来将值与preDefined进行比较。
(value.SomefunctionContains(preDefined)
此功能需要返回
value -> true;
value1 -> false
我知道我不能使用contains()或Any()。所以请帮忙
答案 0 :(得分:3)
您只是在寻找value
是否有任何不在predefined
中的角色,所以这应该这样做:
!value.Any(x => !predefined.Contains(x))
或者使用All
更清楚:
value.All(predefined.Contains);
答案 1 :(得分:2)
private bool SomeFunction(string preDefined, string str)
{
foreach (char ch in str)
{
if (!preDefined.Contains(ch))
{
return false;
}
}
return true;
}
答案 2 :(得分:1)
您可以实现以下方法来获得结果:
private static bool DoesContain(string predefined, string value)
{
char[] c_pre = predefined.ToCharArray();
char[] c_val = value.ToCharArray();
char[] intersection = c_pre.Intersect(c_val).ToArray();
if (intersection.Length == c_val.Length) {
return true;
}
else {
return false;
}
}
请注意,此解决方案是一种通用的实现方式。即使字符的顺序不同,IT也会返回true,除非包含所有字符。