2016-04-14 20 views
4

匿名タイプのリストがありますが、その中にtagId, isTagSelected & tagNameがあります。Cの匿名リストの値を更新する方法

var tagDetails = tagIdList.Select((x, i) => new { tagId = x, isTagSelected = tagSelectionList[i], tagName = tagList[i] }).ToList(); 

結果:私が欲しいもの

{tagId = 1, isTagSelected = true, tagName = "a"} 
{tagId = 2, isTagSelected = false, tagName = "b"} 
{tagId = 3, isTagSelected = true, tagName = "c"} 

tagNameaであるならば、他のSize = "S"string.emptyかを追加し、である私が欲しいのは、いくつかの条件

コードに基づいて、第四プロパティを追加したいですnull。どうすればこれを達成できますか?私は、すべてのサイズを追加して、不要な場所から削除しても、動作していないアプローチを試してみました。

コード:

var tagDetails = tagIdList.Select((x, i) => new { tagId = x, isTagSelected = tagSelectionList[i], tagName = tagList[i], itemSize = itemSize }).ToList(); 

結果:

{tagId = 1, isTagSelected = true, tagName = "a", Size = "S"} 
{tagId = 2, isTagSelected = false, tagName = "b", Size = "S"} 
{tagId = 3, isTagSelected = true, tagName = "c", Size = "S"} 

私はforeachループを試してみましたが、私は専用のプロパティを読み込む変更することができます。とにかく私はSizeを "b" & "c"から削除できますか?

期待される結果:ないVSのインスタンスではなく、これがうまくいくようにそれはそう

{tagId = 1, isTagSelected = true, tagName = "a", Size = "S"} 
{tagId = 2, isTagSelected = false, tagName = "b", Size = "" or null} 
{tagId = 3, isTagSelected = true, tagName = "c", Size = "" or null} 
+2

匿名型のすべてのプロパティは読み取り専用です。すでに正しい値でインスタンスを生成する方法を見つけなければなりません。これは、新しい値セットを生成する2番目のクエリを意味します。 –

答えて

6

イム。

var tagDetails = tagIdList.Select((x, i) => new 
     { tagId = x, 
      isTagSelected = tagSelectionList[i], 
      tagName = tagList[i], 
      Size = tagList[i] == "a" ? "S" : null 
    }).ToList(); 
+0

これは私が探していたものです。ありがとうございました – CSharper

関連する問題