[英]Find specific digit in number
我需要找到数字中的特定数字。 例如我有以下数字
156,14,28,34
我需要找出多少个数字为4
。
您需要的只是一个简单的Linq :
string source = "156, 14, 28,34";
// 2 since there're two numbers - 14, 34 which contain 4
int result = source
.Split(',')
.Count(number => number.Contains('4'));
如果给定一个数组int[]
:
int[] source = new[] {156, 14, 28, 34};
// 2 since there're two numbers - 14, 34 which contain 4
int result = source
.Count(number => number.ToString().Contains('4'));
您可以尝试以下方法:
List<int> inputNumbers = new List<int>(){156, 14, 28,34};
int givenNumber = 4;
var numbers = inputNumbers.Where(x=>
x.ToString().Contains(givenNumber.ToString())
).ToList();
输出将是14
和34
,这是一个工作示例
var lst = new[] {156, 14, 28,34};
var contains4 = lst.Where(c=>c.ToString().Contains("4"));
输出:
14 34
字符串很慢。
如果number
包含digit
则此方法将返回true。
private static bool ContainsDigit(int number, int digit)
{
if (number == 0 && digit == 0)
{
return true;
}
for (var value = number; value > 0; value /= 10)
{
if (value % 10 == digit)
{
return true;
}
}
return false;
}
像这样使用
var values = new []{156, 14, 28, 34, 0};
foreach (var value in values)
{
if (ContainsDigit(value, 4))
{
Console.Write($"{value} ");
}
}
Console.WriteLine();
打印结果
14 34
您的特定用例将决定哪个最适合您
尝试这个
int[] a={156, 14, 28,34};
int count = 0;
foreach (int t in a)
{
if (t.ToString().Contains('4') == true)
{
Console.WriteLine(t);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.