Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#列表连接声明_C#_List - Fatal编程技术网

C#列表连接声明

C#列表连接声明,c#,list,C#,List,我不擅长C#list,因为它让我很困惑。现在,我将两个表相互连接起来,如下所示: var final = queryTable .Join(skillTable, query => query.Id_Skill, skill => skill.Id, (query, skill) => new { Id = query.Id, Name = query.Name, Line1 = skill.Line1, Line2 =

我不擅长C#list,因为它让我很困惑。现在,我将两个表相互连接起来,如下所示:

var final = queryTable
    .Join(skillTable,
        query => query.Id_Skill,
        skill => skill.Id,
        (query, skill) => new { Id = query.Id, Name = query.Name, Line1 = skill.Line1, Line2 = skill.Line2, Line3 = skill.Line3, Line4 = skill.Line4, Line5 = skill.Line5 })
    .ToList();
如您所见,新列表包含元素
Id
Name
Line1
Line2
Line3
Line4
Line5

此列表的类型是什么? 我的意思是,如何声明列表而不是var?我需要这个作进一步的用途

比如:

List final=新列表();
最终=。。。

您正在使用
新{}
语法创建一个匿名类型。这意味着您只能使用
var
,除非您专门创建了具有相同字段的类。

您正在使用
新{}
语法创建一个匿名类型。这意味着您只能使用
var
,除非您专门创建了一个具有相同字段的类。

如果您以后需要引用它,您可以创建一个具有所有这些属性的类,如下所示

public class SomeName
{
  int id { get; set; }
  string Name { get; set; }
  string Line1 { get; set; }
  string Line2 { get; set; }
  string Line3 { get; set; }
  string Line4 { get; set; }
}
并更改查询以创建该类的新实例

var final = queryTable
.Join(skillTable,
    query => query.Id_Skill,
    skill => skill.Id,
    (query, skill) => new SomeName() { Id = query.Id, Name = query.Name, Line1 = skill.Line1, Line2 = skill.Line2, Line3 = skill.Line3, Line4 = skill.Line4, Line5 = skill.Line5 })
.ToList();

如果以后需要引用它,可以创建一个具有所有这些属性的类,如下所示

public class SomeName
{
  int id { get; set; }
  string Name { get; set; }
  string Line1 { get; set; }
  string Line2 { get; set; }
  string Line3 { get; set; }
  string Line4 { get; set; }
}
并更改查询以创建该类的新实例

var final = queryTable
.Join(skillTable,
    query => query.Id_Skill,
    skill => skill.Id,
    (query, skill) => new SomeName() { Id = query.Id, Name = query.Name, Line1 = skill.Line1, Line2 = skill.Line2, Line3 = skill.Line3, Line4 = skill.Line4, Line5 = skill.Line5 })
.ToList();
来自以下文件:(重点已添加)

通常,当使用匿名类型初始化变量时,可以使用var将变量声明为隐式类型的局部变量。变量声明中不能指定类型名称,因为只有编译器可以访问匿名类型的基础名称。。有关var的更多信息,请参阅

如果希望在执行查询后重用该类型,最好的选择可能就是为此创建一个类

另一种解决方案是使用
Tuple
,这样可以节省创建另一个类的时间,但如果计划在太多位置引用该类型,则使用该方法会很麻烦。只有当您计划在同一方法中进一步操作数据时,我可能才会使用
元组

(query, skill) => Tuple.Create(query.Id, query.Name, skill.Line1, skill.Line2,
                               skill.Line3, skill.Line4, skill.Line5 });
最后,您将看到文档中的
列表:(重点添加)

通常,当使用匿名类型初始化变量时,可以使用var将变量声明为隐式类型的局部变量。变量声明中不能指定类型名称,因为只有编译器可以访问匿名类型的基础名称。。有关var的更多信息,请参阅

如果希望在执行查询后重用该类型,最好的选择可能就是为此创建一个类

另一种解决方案是使用
Tuple
,这样可以节省创建另一个类的时间,但如果计划在太多位置引用该类型,则使用该方法会很麻烦。只有当您计划在同一方法中进一步操作数据时,我可能才会使用
元组

(query, skill) => Tuple.Create(query.Id, query.Name, skill.Line1, skill.Line2,
                               skill.Line3, skill.Line4, skill.Line5 });

您将得到一个
列表您可以尝试创建一个具有所有这些属性的类请不要在帖子中提供投票建议,它只是为志愿编辑创建工作-谢谢!您可以尝试创建一个具有所有这些属性的类。请不要在帖子中提供投票建议,它只为志愿编辑创建工作—谢谢<代码>新建SomeName()
?空对象列表不会很有用。@crashmstr yeah忘记添加它了,但Samich修复了它。您可以为属性赋值或创建参数化构造函数库!!成功了<代码>新建SomeName()
?空对象列表不会很有用。@crashmstr yeah忘记添加它了,但Samich修复了它。您可以为属性赋值或创建参数化构造函数库!!成功了!