加入 LINQ 查询语法:将右侧移动到左侧
Join in LINQ Query Syntax: moving right side to the left
我有一个场景需要加入两个 tables:
一个
|---------------------|------------------|
| ID | Name |
|---------------------|------------------|
| 1 | John |
|---------------------|------------------|
| 2 | Matt |
|---------------------|------------------|
| 3 | Emma |
|---------------------|------------------|
B
|---------------------|------------------|
| ID | Text |
|---------------------|------------------|
| 1 | blah blah John |
|---------------------|------------------|
| 2 | this is some data|
|---------------------|------------------|
| 3 | My name is Jeff |
|---------------------|------------------|
我需要使用 LINQ 的查询语法来连接这两个 table。
左边table需要TableA.
虽然我需要根据 "text" 列是否包含 Table A.
中 Name 列中的文本来加入
代码应如下所示:
var result = from ta in A
join tb in B on tb.Text.Contains(ta.Name)
我似乎无法在联接的左侧使用 tb
。
我只能用ta
.
tb
在联接的右侧工作。
有什么方法可以切换它,以便我可以在左侧使用 tb
?
LINQ 中的联接只能使用等式匹配。但是您可以将 SelectMany
方法与 Where
结合使用。它基本上会按条件进行连接。
查询语法是这样的:
from ta in A
from tb in B
where tb.Text.Contains(ta.Name)
// the rest of your query
另请参阅执行自定义联接操作
我有一个场景需要加入两个 tables:
一个
|---------------------|------------------|
| ID | Name |
|---------------------|------------------|
| 1 | John |
|---------------------|------------------|
| 2 | Matt |
|---------------------|------------------|
| 3 | Emma |
|---------------------|------------------|
B
|---------------------|------------------|
| ID | Text |
|---------------------|------------------|
| 1 | blah blah John |
|---------------------|------------------|
| 2 | this is some data|
|---------------------|------------------|
| 3 | My name is Jeff |
|---------------------|------------------|
我需要使用 LINQ 的查询语法来连接这两个 table。
左边table需要TableA.
虽然我需要根据 "text" 列是否包含 Table A.
中 Name 列中的文本来加入代码应如下所示:
var result = from ta in A
join tb in B on tb.Text.Contains(ta.Name)
我似乎无法在联接的左侧使用 tb
。
我只能用ta
.
tb
在联接的右侧工作。
有什么方法可以切换它,以便我可以在左侧使用 tb
?
LINQ 中的联接只能使用等式匹配。但是您可以将 SelectMany
方法与 Where
结合使用。它基本上会按条件进行连接。
查询语法是这样的:
from ta in A
from tb in B
where tb.Text.Contains(ta.Name)
// the rest of your query
另请参阅执行自定义联接操作