【发布时间】:2020-03-20 14:47:47
【问题描述】:
我有一个缓慢的时刻,可以使用一些方向。我有两个不同对象的列表,我创建了一个单独的类,它有一个构造函数来接收这两个不同的对象。我试图找到一种方法来遍历我的两个列表并为我的新“组合”对象创建一个新列表。这可能会使用 LINQ 来完成吗?谢谢你的时间。任何帮助都是好的!
最终结果是使 IEnumerable 绑定到 xamarin.forms 中的列表视图,但如果我能在创建新列表时获得一些指导,那将是一个很大的帮助。谢谢!
List<dbBadges> dbBadgeList = db.Table<dbBadges>().ToList();
List<dbBadgeProgress> dbBadgeProgress = db.Table<dbBadgeProgress>().ToList();
public class dabUserBadgeProgress
{
dbBadges badge;
dbBadgeProgress progress;
public dabUserBadgeProgress(dbBadges badge, dbBadgeProgress progress)
{
this.badge = badge;
this.progress = progress;
}
[Table("Badge")]
public class dbBadges
{
[PrimaryKey, NotNull]
public int badgeId { get; set; }
[NotNull]
public string name { get; set; }
[NotNull]
public string description { get; set; }
[NotNull]
public string imageURL { get; set; }
public string type { get; set; }
public string method { get; set; }
public string data { get; set; }
[NotNull]
public bool visible { get; set; }
[NotNull]
public DateTime createdAt { get; set; }
[NotNull]
public DateTime updatedAt { get; set; }
}
public class dbBadgeProgress
{
[PrimaryKey, NotNull]
public int id { get; set; }
//[NotNull]
public string data { get; set; }
[Indexed, NotNull]
public int badgeId { get; set; }
//[NotNull]
public double percent { get; set; }
//[NotNull]
public int year { get; set; }
//[NotNull]
public bool? seen { get; set; }
[NotNull]
public DateTime createdAt { get; set; }
[NotNull]
public DateTime updatedAt { get; set; }
}
【问题讨论】:
-
在我看来,您需要一个 linq to sql 语句,并在 2 个表和项目之间进行连接,从而形成一种新类型。有很多关于如何做到这一点的例子。如果不更好地了解表之间的关系以及结果模型,我们将无法提供更多帮助。
-
这两个对象是如何关联的?他们是否有共同的 ID 属性或其他东西?
-
感谢您的快速回复,但是是的,badid 的常见 ID。我编辑了问题以添加不同的类。
-
看起来是一对多的关系。同样,有很多关于如何使用 linq 查询一对多关系的示例。
-
谢谢,成功了。