winforms 在列表之间传输数据

bpzcxfmw  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(135)

目前我正在做一个项目,两个列表之间的数据正在交换。一般来说,如果列表具有相同长度,我们可以运行一个循环来获取/设置列表中的数据。但在我的例子中,我想做一个特定的用户界面选择,其中用户可以选择列表-1的哪些数据(索引)需要分配给列表-2。
目前我正在考虑使用FindIndex()函数来获取索引,然后根据index属性将数据从list-1拉到2。
现在,如果列表有1000或更多的长度,什么将是一个良好的做法来交换数据考虑应用程序的性能?

fkvaft9z

fkvaft9z1#

传递信息的方法有很多。我建议两种方法
1.关于linq

_listTesta = (from c in _listTesta
              join ct in _listTestB
                         on c.Id equals ct.Id into g
              from ct in g.DefaultIfEmpty()
              where c.Id != null
              select new Testa
              {
                  Name = ct == null ? c.Name : ct.Name,
                  Family = ct == null ? c.Family : ct.Family,

                  Id = ct == null ? c.Id : ct.Id,
              }).ToArray();

示例数据:

List<Testa> _t = new List<Testa>();
List<TestB> _ta = new List<TestB>();

var _listTesta = Enumerable.Range(1000, 50).Select(i => new Testa(i, "n" +
i, "nf" + i)).ToArray();

var _listTestB = Enumerable.Range(1000, 20).Select(i => new TestB(i, "nb" +
i, "fb" + i)).ToArray();

2.用自动机
Automapperautomapper-net-core

相关问题