有一种很好的方法来检查字符串是否包含100%字符数组,相同的字符可以存在多次。
char数组:
private static char[] Letter = { 'd', 'o' , 'g' };
所以它会匹配:
string a = "dog"
string b = "dooooggg"
但不会匹配`
string c = "doig"
如果想要真正具体,我可以描述字符串中可以有多少个字符匹配吗?
答案 0 :(得分:5)
使用Linq
char[] Letter = { 'd', 'o', 'g' };
string b = "dooooggg";
bool result = b.All(Letter.Contains);
答案 1 :(得分:1)
您可以使用Intersect
,Take
和Count
,根据需要支持最小匹配计数:
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
如果您想知道所有字符是否都包含minMatchCount
到Letter.Length
。