我需要从这个linq中获取值:
var joinPreRes = (from t1 in db.preguntas_respuestas
join t2 in db.respuesta1
on t1.id_respuesta equals t2.id
where t1.id_pregunta == id
group new
{
t1.id,
t1.id_respuesta,
t2.respuesta_visual,
t2.respuesta_valor
} by t1.id);
foreach (var a in joinPreRes)
{
}
如何在foreach上访问id或id_respuesta_visual ???
答案 0 :(得分:3)
您正在创建一个组,因此您应该迭代分组的项目。
var joinPreRes = from t1 in db.preguntas_respuestas
join t2 in db.respuesta1
on t1.id_respuesta equals t2.id
where t1.id_pregunta == id
group new
{
t1.id,
t1.id_respuesta,
t2.respuesta_visual,
t2.respuesta_valor
} by t1.id into GroupedItems
select GroupedItems;
foreach (var a in joinPreRes)
{
// a.Key is the t1.id
foreach (var subItem in a)
{
// subItem.id_respuesta <- other fields/properties
// subItem.respuesta_valor <- other fields/properties
}
}
答案 1 :(得分:0)
使用选择功能 选择(x =&gt; x.id&amp;&amp; x.respuesta_visual);
答案 2 :(得分:0)
可能你需要
import java.util.*;
public class World{
private static final String P="P";
private String[][] array;
public World(){
Scanner input = new Scanner(System.in);
System.out.println("Enter number of row: ");
int crow = input.nextInt();
System.out.println("Enter number of columns: ");
int ccol = input.nextInt();
array = new String[crow][ccol];
array[0][0]=P;
}
public void displayWorld(){
System.out.println();
for(int i=0;i<array.length;i++){
for (int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
public void moveUp(){
}
public void moveDown(){
for(int i=0;i<array.length;i++){
for (int j=0;j<array[i].length;j++){
if ((array[i][j])!=null){
if (i<array.length-1){
array[i][j]=null;
array[i+1][j]=P;
}
return;
}
}
}
}
public void moveLeft(){
}
public void moveRight(){
}
public static void main(String[] args){
World world=new World();
world.displayWorld();
world.moveDown();
world.displayWorld();
}
}
答案 3 :(得分:0)
您遇到的每个a
都是IGrouping
,其中Key
是一个整数,并且分组中有一个或多个元素。
由于id
用作Key
,您只能从id
获取a.Key
。
可以通过将a
视为IQueryable
来访问其余属性。例如:
var firstRespuesta = a.First().id_respuesta;
foreach(var item in a)
{
DoSomething(item.respuesta_visual);
}
等等。
答案 4 :(得分:0)
您的问题的答案在于a
循环中的foreach
变量是具有group new
块中定义的属性的匿名对象的集合。因此,要访问这些项目,您可以在foreach
块中执行以下操作:
foreach (var a in joinPreRes)
{
foreach (var item in a)
{
Console.WriteLine(item.id);
Console.WriteLine(item.id_respuesta_visual);
}
}
当然,你不必拥有一个内在的'foreach'循环,但这是向我展示如何访问匿名项目的最简单方法。