LINQ:別のユースケース

LINQは大きな可能性を秘めた素晴らしいものです。 関心のあるプログラマーはすべて、LINQ to SQLまたはLINQ to XMLを知っています。 このリストを展開して、LINQの別のアプリケーションの簡単な例を示します。

たとえば、CheckBoxListなどのasp.netコントロールを取り上げます。 この要素を使用すると、いくつかの常識に基づいた一連のチェックボックスを表示できます。 たとえば、銀行のリストを表示して、特定のコンテキストで必要なセットを作成する機会をユーザーに与えることができます。
< asp:CheckBoxList ID = "cblBanks" runat = "server" >
</ asp:CheckBoxList >
< asp:SqlDataSource ID = "dsBanks" runat = "server"
ConnectionString = "<%$ ConnectionStrings:SampleConnectionString%>"
SelectCommand = "SELECT b.id、b.shortName FROM Banks b" >
</ asp:SqlDataSource >
cblBanks.DataSource = dsBanks; cblBanks.DataValueField = "id" ; cblBanks.DataTextField = "shortName" ; cblBanks.DataBind();

*このソースコードは、 ソースコードハイライターで強調表示されました。


タスクは、ユーザーが選択した銀行識別子のリストを取得することです。 最も単純なケースでは、要素のコレクションを調べて、ユーザーがマークした要素を選択できます。 しかし、LINQはこのプロセスをさらに簡単にします。
var Banks = cblBanks.Items.Cast <ListItem>().Where(x => x.Selected == true ).Select(y => Convert .ToInt32(y.Value)); *このソースコードは、 ソースコードハイライターで強調表示されました。

とてもシンプルでエレガントですよね? LINQは、コントロールだけでなく、Enumerable.Cast(TResult)または同様のメソッドEnumerable.OfType(TResult)を介した非ジェネリックコレクションでも同様の作業に役立つことがあります。

PS:「記事にエラーはありません!」-残念ながらこれを言うことはできませんが、見つかったエラーに注意を払っていただければ幸いです。

Source: https://habr.com/ru/post/J25163/


All Articles