2017-02-21 9 views

答えて

1

あなたはこれで試してみることができます:

List<int> inputNumbers = new List<int>(){156, 14, 28,34}; 
int givenNumber = 4; 
var numbers = inputNumbers.Where(x=> 
           x.ToString().Contains(givenNumber.ToString()) 
           ).ToList(); 

出力が1434になりますが、ここのためworking Exampleあります

1
var lst = new[] {156, 14, 28,34}; 
var contains4 = lst.Where(c=>c.ToString().Contains("4")); 

出力:

0

この

int[] a={156, 14, 28,34}; 
int count = 0; 
foreach (int t in a) 
{ 
    if (t.ToString().Contains('4') == true) 
    { 
    Console.WriteLine(t); 
    } 
} 
2

必要なのは、単純なLINQので試してください:あなたは、配列int[]を与えられている場合は

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[] 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')); 
1

文字列が遅いです。

numberdigitが含まれている場合、このメソッドは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(); 

のように使用されます

関連する問題