簡體   English   中英

如何從列表視圖以C#winforms中的字典格式獲取數據

[英]How to get data from a ListView in Dictionary format in C# winforms

我有一個像ListView控件

列表顯示

Dictionary

Dictionary<String,List<String>> MyDict

我需要用ListView數據填充字典

所以字典會像

{ "S.No."  { "1","2","3" } }
{" A" {"A1", "", "" } }
{" B" {"B1", "B2", "" } }
{" C" {"C1", "C2", "C3" } }

使用嵌套的for循環我們可以做到這一點。 但是有什么辦法可以使用LINQ做到這一點嗎?

使用ToDictionary方法:

Dictionary<string, List<string>> dict =
    listView.Items
            .Cast<ListViewItem>()
            .ToDictionary(
                item => item.Text,
                item => item.SubItems
                            .Cast<ListViewItem.ListViewSubItem>()
                            .Select(subItem => subItem.Text)
                            .ToList());

編輯

好的,我誤解了這個問題……這應該可行:

Dictionary<string, List<string>> dict =
    listView.Columns
            .Cast<ColumnHeader>()
            .ToDictionary(
                c => c.Text,
                c => listView.Items
                             .Cast<ListViewItem>()
                             .Select(i => i.SubItems[col.Index].Text)
                             .ToList());

(之所以有效,是因為索引0的子項實際上是擁有其他子項的子項)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM