C# 列表<;T>;-用于检索数据的类sql语句

C# 列表<;T>;-用于检索数据的类sql语句,c#,C#,我有下表 public class QTable { public string QID { get; set; } public string QNO { get; set; } public string Q1 { get; set; } public string Q2 { get; set; } public string opt1 { get; set; } public string opt2 { get; set; } pub

我有下表

public class QTable
{
    public string QID { get; set; }
    public string QNO { get; set; }
    public string Q1 { get; set; }
    public string Q2 { get; set; }
    public string opt1 { get; set; }
    public string opt2 { get; set; }
    public string opt3 { get; set; }
    public string opt4 { get; set; }
    public string Answer { get; set; }
    public string Remarks { get; set; }
    public string KnowledgeArea { get; set; }
    public string Hints { get; set; }
    public string Section { get; set; }
    public string ToughLevel { get; set; }
    public string DateCreated { get; set; }
    public string Category { get; set; }
    public string DeleteMe { get; set; }

}

 QID is my primary key.
我有

 List<Qtable> qtableList = <list of all values of qtable from a query>
List qtableList=
我需要找到一个特定的QID并获取其他字段进行操作。
是否有类似SQL语句的结构来处理列表中的这些内容?

您可以使用它来获取所需的项目

Qtable item = qtableList.FirstOrDefault(x=>x.QID == id);
请注意,如果列表中不存在QID,并且您尝试访问其属性之一,则会抛出“对象引用不是对象异常的实例”,因为您尝试访问空对象

为了防止这种情况,在访问之前检查返回值是否与null不同,并修改所需的属性。

在C#中,最好的sql-ike方法就是简单地使用linq,它可以处理这种请求

基本语法是:

var query = from qt in qtableList
            where qt.QID == "1"
            select qt;
这基本上是返回数据的第一个pk元素

插入、更新和其他基本sql操作也能正常工作

有关这方面的更多信息:

Google
LINQ
您将看到。使用qtableList.FirstOfDefault(a=>a.QID.Equals(otherId));