检查字符串char是否匹配100%char数组?

时间:2017-05-16 11:10:42

标签: c#

有一种很好的方法来检查字符串是否包含100%字符数组,相同的字符可以存在多次。

char数组:

private static char[] Letter = { 'd', 'o' , 'g' };

所以它会匹配:

string a = "dog"
string b = "dooooggg"

但不会匹配`

string c = "doig"

如果想要真正具体,我可以描述字符串中可以有多少个字符匹配吗?

2 个答案:

答案 0 :(得分:5)

使用Linq

进行操作
char[] Letter = { 'd', 'o', 'g' };
string b = "dooooggg";

bool result = b.All(Letter.Contains);

答案 1 :(得分:1)

您可以使用IntersectTakeCount,根据需要支持最小匹配计数:

char[] Letter = { 'd', 'o', 'g' };
int minMatchCount = 2;

string a = "dog";      // 3 matches, fine
string b = "dooooggg"; // 3 matches, fine
string c = "dock";     // 2 matches, fine
string d = "foo";      // nope, only 1

bool minMatchingA = a.Intersect(Letter).Take(minMatchCount).Count() == minMatchCount; // true
bool minMatchingB = b.Intersect(Letter).Take(minMatchCount).Count() == minMatchCount; // true
bool minMatchingC = c.Intersect(Letter).Take(minMatchCount).Count() == minMatchCount; // true
bool minMatchingD = d.Intersect(Letter).Take(minMatchCount).Count() == minMatchCount; // false

如果您想知道所有字符是否都包含minMatchCountLetter.Length