gpt4 book ai didi

c# - 如何根据另一个列表中一个属性的所有值过滤 linq 查询

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:59 26 4
gpt4 key购买 nike

我有以下方法:

    public static void UpdateKeySetToDatabase(List<TrackedKey> set)
{
try
{
using (var c = new SqlConnection(ConnectionString.ConnectionString))
{
c.Open();

//var result = c
//.Where(x => x.Product.Any(p => p.ProductNumber == "11"))
//.ToList();



DataContext dc = new DataContext(c);

Table<TrackedKey> tableKeys = dc.GetTable<TrackedKey>();

var KeyStates =
from k in tableKeys
select k;

foreach (var k in KeyStates)
{
EventHandling.Logging.CreateTextEvent($"Key last touch time {k}");
}
}
}
catch (Exception ex)
{
EventHandling.Logging.CreateTextEvent($"linq error {ex.ToString()}");
}
}

我只想根据 tableKeys 中的键生成 keyStates 数据,这些键也存在于传入列表集中的属性“keyId”中。这是怎么做到的?我试图在 SO 和其他页面上寻找答案,但它们似乎显示了示例,其中您要过滤的列表仅包含一个属性,例如仅 Keyids 列表。我的列表是对象 TrackedKey,其中一个属性是 KeyId。

最佳答案

var KeyStates = from k in tableKeys
join s in set on k.keyId equals s.keyId
select s;

或(可能效率较低)

var KeyStates = tableKeys.Where(x => set.Any(y => y.keyId == x.keyId));

关于c# - 如何根据另一个列表中一个属性的所有值过滤 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57088003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com