2016-06-30 6 views
1

のNULL可能リストを作るために、私はこの文字列を持っている:どのようにint型

string alertsId = "1,2,3,4"; 

その後、私はint型のリストに文字列を変換:

私はのNULL可能リストに上記のリストに変換することができますどのよう
List<int> list = alertsId.Split(',').Select(n => Convert.ToInt32(n)).ToList(); 

ints?

+0

'List list = null 'が可能です。どういう意味ですか?あなたの文字列の値の1つがintに変換することが不可能で、あなたのリストの値としてnullを提供することができない場合を考慮したいですか? – pijemcolu

答えて

2

まあ、List<int>は参照型であり、そのため定義可能ではありません。ですから、のヌル可能な整数(List<int?>のリストを作成したいと思います。

あなたは、単にCast<T>()を使用することができます。

List<int?> nullableList = list.Cast<int?>().ToList(); 

か、直接それを作成するために:

List<int?> list = alertsId.Split(',').Select(n => (int?)Convert.ToInt32(n)).ToList(); 
+0

文字列が間違った形式の場合、Convert.ToInt32は例外を発生させます –

2

関数を定義します。その後、

public int? ParseToNullable(string s) 
{ 
    int? result = null; 
    int temp = 0; 
    if (int.TryParse(s, out temp)) 
    { 
     result = temp; 
    } 
    return result; 
} 

そして、このようにそれを使用します。

string alertsId = "1,2,3,4"; 
List<int?> list = alertsId.Split(',').Select(n => ParseToNullable(n)).ToList(); 
0

あなたはNULL可能のリストを作成し、怒鳴るの例のように、NULL可能な1にあなたのリストの各要素をコピーすることができます。

  List<Nullable<int>> a = new List<Nullable<int>>(); 
      List<int> b = new List<int> { 1, 3, 4 }; 
      foreach (var c in b) 
      { 
       a.Add((Nullable<int>)c); 
      } 
0

マイADITION LINQパーティーに

まず
string alertsId = "1,2,3,4,crap"; 
List<int?> list = alertsId.Split(',') 
      .Select(s => { int i; return int.TryParse(s, out i) ? i : (int?)null; }) 
      .ToList(); 

をコンマで区切り、各要素を解析しようとします。解析できない場合はnullを返し、次に作業していた配列をリストに変換します。

関連する問題