如何检查一个数字是否包含另一个数字的所有数字?

时间:2018-11-23 14:20:56

标签: c#

我正在尝试做一些我有两个数字的事情(假设1235321)。我想检查第二个数字是否包含第一个数字的所有数字。现在,如果有任何方法可以使用if和for循环来完成,这将对我有很大帮助,但是任何帮助均不胜枚举!哦,一个数字有多少个相同的数字也没关系(33和503仍在计数)

2 个答案:

答案 0 :(得分:2)

如果我们不计算位数(例如22出现在123中,即使22两位 { {1}}当2只有一个123)时:

2

如果数字位数很重要(即 int first = 123; int second = 5321; // If second contains first bool contains = !first .ToString() .Except(second.ToString()) .Any(); 中没有出现22

123

编辑:老式的 var dict = second .ToString() .GroupBy(d => d) .ToDictionary(chunk => chunk.Key, chunk => chunk.Count()); // If second contains first bool contains = first .ToString() .GroupBy(d => d) .All(chunk => dict.TryGetValue(chunk.Key, out var count) && count >= chunk.Count()); if循环解决方案:

for

答案 1 :(得分:1)

使用stringContains()的方法

int i1 = 5321, i2 = 123;
bool result = i1.ToString().All(i2.ToString().Contains); //false, 5 missing