Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 具有单独列值的Lambda表达式_C#_Asp.net Mvc_Lambda - Fatal编程技术网

C# 具有单独列值的Lambda表达式

C# 具有单独列值的Lambda表达式,c#,asp.net-mvc,lambda,C#,Asp.net Mvc,Lambda,我正在尝试获取一个查询来处理用户输入。我是C和lambdas的新手,对于这个基本问题很抱歉,但我遇到了一个障碍。我得到一个地址输入从一个单独的领域,5个单独的领域,准确地说 if (!string.IsNullOrEmpty(SessionHandler.StreetNumber)) { allFeatures = layerFindResults.QueryTools.GetAllFeatures(ReturningColumnsTy

我正在尝试获取一个查询来处理用户输入。我是C和lambdas的新手,对于这个基本问题很抱歉,但我遇到了一个障碍。我得到一个地址输入从一个单独的领域,5个单独的领域,准确地说

  if (!string.IsNullOrEmpty(SessionHandler.StreetNumber))
            {
                allFeatures = layerFindResults.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns);
                searchResults = allFeatures.Where(f => f.ColumnValues["STREETNUM"].ToLower().Contains(SessionHandler.StreetNumber.ToLower()).Select(f =>new
                                                     {
                                                         StreetNum = f.ColumnValues["STREETNUM"],
                                                         StreetName = f.ColumnValues["STR_NAME"]
                                                     }).ToList());


            }
这适用于获取STREETNUM中的值,但我想知道是否有一种方法可以获取与该列值关联的其他值,例如streetname,而无需用户为其输入值

如果不清楚,我很抱歉

如果有方法获取关联的其他值

选择是你的朋友。“选择”将创建一个投影,这意味着正在从一种形式的数据更改为另一种形式的数据。您要做的是使用“选择”按钮创建一个动态实体,从中提取相关/所需数据,例如在此处返回城市:

searchResults 
       = allFeatures.Where( ... )
                    .Where( ... )             // Behaves like an `and` between the two where's.
                    .Select(f => new
                    {
                        Street = f.ColumnValues["STREETNUM"],
                        City   = f.ColumnValues["City"]
                    })
                    .ToList();

我相信有一种方法可以做到这一点。Where和lambda表达式,但在我看来,你无法击败类似LINQ SQL的语法,即

 searchResults = (from DataType i in allFeatures where f.StreetNum = SessionHandler.StreetNum select i).ToList(); //returns a list of matching objects

你到底需要什么?您还可以编写混合&&或| |运算符的lambda表达式。返回类型将是与条件匹配的所有功能的列表。您是否尝试根据返回的内容访问所需的属性/项目?我需要它来获取STREETNUM中的值以及相同对象中的值,例如street name和street type。因此,我需要根据用户在一个字段中的输入来获取这些值。因此,我要描述的方式是,如果我在StreetNum中找到一个元素,我希望返回所有其他列值,即使没有与之相关的输入。你在完成之前删除帖子的策略,然后取消删除,阻止我投票给你的答案。因为麻烦,没有投票。@ErikE我意识到,在删除之前,我的答案显然是错误的,当我重新组合以获得更新的答案时,可能会招致否决票。我将把你的评论视为一个积极的建议,最终没有获得否决票!:-@OmegaMan这似乎是可行的,但我的语法有问题,我无法让select正常工作}@user1650547我无法预测您的数据类型模型是什么样子的……您必须进行实验直到从现有数据中正确指定了动态实体值。