0

简短的版本是这样的:我有一个数据库。我有用于与该数据库交互的 ac# 列表。程序开始,将数据转储到列表中,程序结束,将其保存回数据库。

不过,这是我的问题:当我创建和删除列表项时,我需要确保列表中的一个属性 (id) 始终是唯一的。我在想也许一个列表可能有类似于 SQL 自动增量的东西?或者也许只是哪个项目在哪个位置的数字索引?

AddedDependents.Add(new Dependent
                   {
                       IsSpouse = isSpouse,
                       Id = /*unique id/*
                   });
4

2 回答 2

0

生成一个怎么样Guid

例如

AddedDependents.Add(
    new Dependent
    {
        IsSpouse = isSpouse,
        Id = Guid.NewGuid().ToString("N")
     });

因此暗示您的“Id”是一个字符串,我无法从您的问题中读取这是否可能。

或者,不要将其设为字符串,而是将其设为Guid类型,例如:

AddedDependents.Add(
    new Dependent
    {
        IsSpouse = isSpouse,
        Id = Guid.NewGuid()
     });
于 2012-08-09T16:47:10.507 回答
0

您可以只使用列表的索引:

AddedDependents.Add(new Dependent
               {
                   IsSpouse = isSpouse,
                   Id = AddedDependents.Count
               });

然后DependentId 和列表索引是相同的,因此从列表中获取它变得微不足道Dependent

正如评论中提到的,如果您可能会从此列表中删除元素,那么您不能只通过 Id 获取依赖项,AddedDependents[dependent.Id]而是需要遍历列表:

AddedDependents.Where(d => d.Id == dependent.Id);
于 2012-08-09T16:52:48.067 回答