gpt4 book ai didi

c# - Linq 查询只返回数组的第一项

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:07 25 4
gpt4 key购买 nike

让字符串项目等于“p1、p2、p3”,在数据库中每个项目的标识符如下 p1 = 1、p2 = 2、p3 = 3。只有列表中的第一个项目被返回到我的查询,有什么想法吗?

private List<int> getProjects(string projects)
{

String[] projectArray = projects.Split(',');

QMOIIEntities db = new QMOIIEntities();

var projectList = db.wbs_projects
.Where(x => projectArray.Contains(x.prjName))
.Select(x => x.prjID).ToList();

return projectList;
}

**更新这个问题是我更改的字符串中的空格

String[] projectArray = projects.Split(',');

 String[] projectArray = projects.Trim().Split(',');

最佳答案

以下代码使用与您在问题中提到的相同的逻辑。我创建了虚拟数据。代码按预期运行,即输出是与每个 prjName 对应的 prjID。

void Main()
{
string projects = "p1,p2,p3";
List<string> projectArray = projects.Split(',').ToList();

TestEntities db = new TestEntities();
db.wbs_projects = new List<TestEntities>();
db.wbs_projects.Add(new TestEntities(){prjName = "p1",prjID="Test1"});
db.wbs_projects.Add(new TestEntities(){prjName = "p2",prjID="Test2"});
db.wbs_projects.Add(new TestEntities(){prjName = "p3",prjID="Test3"});

var projectList = db.wbs_projects
.Where(x => projectArray.Contains(x.prjName))
.Select(x => x.prjID).ToList();

foreach(var item in projectList)
{
Console.WriteLine(item);//Test1,Test2,Test3
}

}

public class TestEntities
{
public List<TestEntities> wbs_projects{get;set;}

public string prjName{get;set;}
public string prjID{get;set;}
}

关于c# - Linq 查询只返回数组的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8028636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com