我正在尝试做一些我有两个数字的事情(假设123
和5321
)。我想检查第二个数字是否包含第一个数字的所有数字。现在,如果有任何方法可以使用if和for循环来完成,这将对我有很大帮助,但是任何帮助均不胜枚举!哦,一个数字有多少个相同的数字也没关系(33和503仍在计数)
答案 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)
使用string
和Contains()
的方法
int i1 = 5321, i2 = 123;
bool result = i1.ToString().All(i2.ToString().Contains); //false, 5 missing