0

linq を使用して xml ファイルから入力するドロップダウンリストがたくさんあります。私はそれらを移入するために次のことを試みましたが、それは何とか機能します. また、各ドロップダウンリストの個別の値を取得するのではなく、すべての値を取得します。以下のコードを参照してください

 var feeds = (from item in doc.Descendants("item")

                     select new
                     {
                         channel = (string)item.Element("channel") ?? null,
                         specialtoken = (string)item.Element("specialtoken") ?? null,
                         subchannel = (string)item.Element("subchannel") ?? null,
                         subtitle = (string)item.Element("subtitle") ?? null,
                     }).ToList().Distinct();


        cboChannel.DataSource = feeds;
        cboChannel.DataBind();

        cboSpecialToken.DataSource = feeds;
        cboSpecialToken.DataBind();

        cboSubChannel.DataSource = feeds;
        cboSubChannel.DataBind();

        cboSubtitle.DataSource = feeds;
        cboSubtitle.DataBind();
        ...And so on....

各値項目を個別のクエリに分割するよりも良い方法はありますか?

乾杯、クリス

var specialtoken = (from item in doc.Descendants("item")
                     select new
                     {
                         specialtoken = (string)item.Element("specialtoken") ?? null,
                     }).ToList().Distinct();


var channel= (from item in doc.Descendants("item")
                     select new
                     {
                         channel = (string)item.Element("channel") ?? null,
                     }).ToList().Distinct();
etc. etc.
4

1 に答える 1

1

最も簡単な方法は、元のクエリを保持し、ドロップダウンごとにサブクエリを実行して、関心のある項目に値があることを確認することだと思います。

cboChannel.DataSource = feeds.Where(x => !String.IsNullOrEmpty(x.channel)).ToList();

私はこれがはるかに簡潔だと思います

于 2009-02-17T14:02:15.483 に答える