Tho*_*eld 7 c# linq lambda listview
我有一个没有列的ListView控件.
列表
List<String> MyList=new List<string>();
Run Code Online (Sandbox Code Playgroud)
我需要为每个列表MyList项创建列,ListView并为序列号创建另一列.
例如,如果MyList包含"A", "B" ,"C"
然后列表视图就像

我知道我们可以使用for或foreach循环使用
listView1.Columns.Add("S.No")
for(int i=0;i<MyList.Count;i++)
{
listView1.Columns.Add(MyList[i])
}
Run Code Online (Sandbox Code Playgroud)
但有没有办法使用LINQ或LAMBDA Expression?
MyList.ForEach(name => listView1.Columns.Add(name));
Run Code Online (Sandbox Code Playgroud)
这里有 4 个选项
,至少还有 10 种方法可以做到这一点,
var myList = new List<string>() { "A", "B", "C" };
// 1: Modify original list and use List<>.ForEach()
myList.Insert(0, "S. No");
myList.ForEach(x => lisView.Columns.Add(x));
// 2: Add first column and use List<>.ForEach()
listView.Columns.Add("S. No");
myList.ForEach(x => listView.Columns.Add(x));
// 3: Don't modify original list
(new[] { "S. No" }).Concat(myList).ToList()
.ForEach(x => listView.Columns.Add(x));
// 4: Create ColumnHeader[] with Linq and use ListView.Columns.AddRange()
var columns = (new[] { "S. No"}).Concat(myList)
.Select(x => new ColumnHeader { Text = x }).ToArray();
listView.Columns.AddRange(columns);
Run Code Online (Sandbox Code Playgroud)
您是否考虑过KISS选项?
| 归档时间: |
|
| 查看次数: |
22100 次 |
| 最近记录: |