我正在尝试使用Linq返回一个id列表,给出id为属性的对象列表.我希望能够在不循环遍历每个对象并拉出我找到的唯一ID的情况下执行此操作.
我有一个MyClass类型的对象列表,这个类的一个属性是一个ID.
public class MyClass
{
public int ID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是写一个Linq查询来返回我的那些ID列表
IList<MyClass>如果它返回一个IEnumerable<int>id ,我该怎么做呢?
我确信必须能够使用Linq在一行或两行中完成它,而不是循环遍历MyClass列表中的每个项目并将唯一值添加到列表中.
任何帮助创建一个优雅的解决方案将非常感谢!
我的大脑现在似乎很糊涂了!我正在使用LINQ to Entity,我需要从一个表中获取一些不存在于另一个表中的数据.
例如:我需要表A中的groupID,groupname和groupnumber,它们在表B中不存在.groupID将与其他相关信息一起存在于表B中.这些表没有任何关系.在SQL中它会非常简单(有一个更优雅和有效的解决方案,但我想画一幅我需要的图片)
SELECT
GroupID,
GroupName,
GroupNumber,
FROM
TableA
WHERE
GroupID NOT IN (SELECT GroupID FROM TableB)
Run Code Online (Sandbox Code Playgroud)
使用Entity Framework/LINQ to Entity有一种简单/优雅的方法吗?现在我有一堆查询命中数据库,然后进行比较,等等.它非常混乱.
基本上我要做的是获取一个对象列表并根据一些标准对其进行过滤,其中一个标准是该键在另一个列表中不存在.这是一个例子:
我的两个类与此类似:
public class Test
{
public string name;
public string instructor_name;
public string course;
}
public class Appointment
{
public string site;
public DateTime forWhen;
public string testName;
}
Run Code Online (Sandbox Code Playgroud)
我想通过查看课程并确保List <Appointment>中不存在测试来对List <Test>进行排序.在SQL中我会这样做:
SELECT new Group<Test>(c.Key, c)
FROM tests in testList
WHERE tests.Course != "Science"
AND tests.name NOT IN (SELECT testName FROM appotList)
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何在LINQ中执行此操作.有任何想法吗?