List 在颤振中搜索并找到DTO类列表中的字符串?

List 在颤振中搜索并找到DTO类列表中的字符串?,list,flutter,search,List,Flutter,Search,我有这个DTO类,作为对API的响应,我得到以下列表: class ProjectCode { String id; String projectCode; String projectTitle; ProjectCode({this.id, this.projectCode, this.projectTitle}); ProjectCode.fromJson(Map<String, dynamic> json) { id = json['Id'];

我有这个DTO类,作为对API的响应,我得到以下列表:

class ProjectCode {
  String id;
  String projectCode;
  String projectTitle;

  ProjectCode({this.id, this.projectCode, this.projectTitle});

  ProjectCode.fromJson(Map<String, dynamic> json) {
    id = json['Id'];
    projectCode = json['ProjectCode'];
    projectTitle = json['ProjectTitle'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['Id'] = this.id;
    data['ProjectCode'] = this.projectCode;
    data['ProjectTitle'] = this.projectTitle;
    return data;
  }
}
class项目代码{
字符串id;
字符串项目代码;
字符串项目标题;
ProjectCode({this.id,this.ProjectCode,this.projectTitle});
ProjectCode.fromJson(映射json){
id=json['id'];
projectCode=json['projectCode'];
projectTitle=json['projectTitle'];
}
映射到JSON(){
最终地图数据=新地图();
数据['Id']=this.Id;
数据['ProjectCode']=this.ProjectCode;
数据['ProjectTitle']=this.ProjectTitle;
返回数据;
}
}

现在,我如何在列表中搜索并找到需要查找的
ProjectTitle
,然后该方法返回DTO中的id?

这很简单,您可以使用此方法查找需要查找的字符串。为所有内容创建这样的方法您需要这样搜索吗:

  String find(List<ProjectCode> projectCodeList, String projectTitle) {
    return projectCodeList
        .firstWhere(
            (projectCode) => projectCode.projectTitle.contains(projectTitle))
        .id;
  }
字符串查找(列表项目代码列表,字符串项目标题){
返回项目代码列表
.第一个在哪里(
(projectCode)=>projectCode.projectTitle.contains(projectTitle))
身份证件
}

这很简单,您可以使用此方法查找需要查找的字符串。为所有内容创建这样的方法您需要这样搜索吗:

  String find(List<ProjectCode> projectCodeList, String projectTitle) {
    return projectCodeList
        .firstWhere(
            (projectCode) => projectCode.projectTitle.contains(projectTitle))
        .id;
  }
字符串查找(列表项目代码列表,字符串项目标题){
返回项目代码列表
.第一个在哪里(
(projectCode)=>projectCode.projectTitle.contains(projectTitle))
身份证件
}

如果您要经常这样做,请制作一张包含projectTitle键和[id,projectCode]值列表的地图。一旦建立了地图,查找是固定时间而不是线性时间。@RandalSchwartz谢谢你的建议,如果你为此编写地图,我很高兴,我会向你学习。如果你要经常这样做,请制作一个带有projectTitle键和[id,projectCode]值列表的地图。一旦建立了地图,查找是固定时间而不是线性时间。@RandalSchwartz谢谢你的建议,我很高兴你能为此写一张地图,我会向你学习。