标签: lambda

C#SQL =>运算符含义

在LINQ中使用C#SQL,我遇到了这样的声明:

var names = database.Browsers.Select(b => b.Name);
Run Code Online (Sandbox Code Playgroud)

怎么b=>b.Name办?什么是=>运营商一般做什么?

代码是C#.net框架的一部分,其中database是通过Linq在底层数据库上的句柄.

c# linq lambda

0
推荐指数
1
解决办法
189
查看次数

LINQ lambda OrderByDescending on group by key.count()返回按键分组的字符串列表,用于图表图例排序

试图在MVC 4 C#中对饼图的图例进行排序.该图表显示按商品编号销售的产品数量.在图例中,我想显示项目编号,然后显示已售出的编号,然后显示已售出的百分比,并按销售的数量按降序排序.

我已经得到了"Y"值(#已售出)以便正确订购,但在尝试订购"X"值时,它们最终混乱并且与其正确的"Y"值不匹配.

在我看来,我应该只需要按项目编号对数据进行分组,然后按项目编号的匿名类型和项目编号的数量选择数据,然后根据项目编号计数降序排序,然后再次选择此时间现在以正确的顺序获取项目编号的列表字符串.

上述工作正常运行是合理的,而问题更多的是我几乎完全不了解该DataBindXY方法在图表中的工作原理.

码:

var data = srv.GetTSMMetricData(Mode, Territories, selectedTerritory).GroupBy(x => x.ItemNumber).ToList();

var xValues = data.Select(x => x.Key).OrderByDescending(x => x.Count()).ToList();

mySeries.Points.DataBindXY(xValues, data.Select(x => x.Count()).OrderByDescending(x => x).ToList());
Run Code Online (Sandbox Code Playgroud)

任何正确方向的帮助或推动都会很棒.如果还有其他任何我可以发布的内容可能会丢失,请告诉我.

谢谢.

编辑:忘了我试图在以上版本的上述代码中使用匿名类型..

var xValues = data.Select(x => new { Item = x.Key, Count = x.Key.Count() }).OrderByDescending(x => x.Count).ToList();

mySeries.Points.DataBindXY(xValues.Select(x => x.Item).ToList(), data.Select(x => x.Count()).OrderByDescending(x => x).ToList());
Run Code Online (Sandbox Code Playgroud)

编辑2:当前结果示例(前5个图例条目)..

ItemNumber - # Sold - % Sold ----- Correct ItemNumber for # Sold
-------------------------------------------------------------
8500         42       (20.79)%     PRS
JOL          19       (9.41)% …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc lambda

0
推荐指数
1
解决办法
6503
查看次数

是否可以在不使用boost的情况下在C++ 11中编写这样的代码?

前一阵子我偶然发现了以下一行代码:

 return accumulate(s, s + size, char(), (_1 ^ _2));
Run Code Online (Sandbox Code Playgroud)

它使用的是boost标题,但我一直认为它非常非常优雅(注意lambda没有命名输入参数,所以它超短.:)请注意我知道C++ 11有lambda函数,这是不是关于lambdas,而是关于这个很好的短语法.

c++ lambda boost c++11

0
推荐指数
1
解决办法
226
查看次数

Lambda表达式替换为什么我可以使用"%"运算符而不是">"运算符

  return x%2 != 0; // Return true if x is odd. => ok


  return x>0 == 1; // Return true if x > 0 => this won't work
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么第二行不起作用?为什么我不能用">","=","<"...运营商?

c# lambda

0
推荐指数
1
解决办法
121
查看次数

对于编辑器模板,Lambda表达式太复杂了

在我看来,我有一行代码可以呈现一个编辑器模板.

但是,它返回错误:

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.

这似乎是实现我想要的最优雅的方式但我意识到我的视图中的lambda表达式对于编辑器模板来说太复杂了.

谁能建议如何做这项工作或建议我更好的方法?

视图

@Html.EditorFor(model => model.Approvers.Where(a => a.ApprovalCount > 0))
Run Code Online (Sandbox Code Playgroud)

编辑模板

@model Project.ViewModels.AssignedApproverData

<div class="span3">
    <label class="checkbox inline">
        @Html.HiddenFor(model => model.EmployeeID)    
        @Html.CheckBoxFor(model => model.Assigned)
        @Html.DisplayFor(model => model.FullName)
    </label>
</div>
Run Code Online (Sandbox Code Playgroud)

编辑模板ViewModel

using System;
using System.Collections.Generic;
using Project.Models;

namespace Project.ViewModels
{
    public class AssignedApproverData
    {
        public string EmployeeID { get; set; }
        public string FullName { get; set; }
        public bool Assigned { get; set; }
        public int ApprovalCount { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

视图模型

namespace Project.ViewModels
{ …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc lambda entity-framework razor

0
推荐指数
1
解决办法
321
查看次数

如何获取c#中重复的值的计数

我想找到使用linq查询重复的整数.例如,我的清单包括

var array = new int[]{1,1,1,2,2,2,2,3,3,9,9,16,16};

现在我想查询像我想的计数1的3 计数2的4 计数3的2 计数9的2 计数16为2

我如何在c#中使用linq来做到这一点.希望你理解我的问题.

c# linq lambda

0
推荐指数
1
解决办法
3136
查看次数

如何从一个列表中删除另一个列表中的所有项目?

我正在从远程数据库读取一组行,从本地数据库读取类似的集合,然后使用RemoveAll删除本地已存在的远程行...

remote_events = (From a In remote.Events
                          Where ...etc...).ToList
local_events = (From a In local.Events
                            Where ...etc...).ToList
remote_events.RemoveAll(Function (ByVal event_row As Remote_Event)
    (From a In local_events Where a.Identifier = event_row.Identifier).Count > 0)
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎不对.当我真正需要做的是检查是否存在匹配时,我认为我不应该计算事物.我已经试过的各种用途IsDBNull和IsNothing,但得到的废话.我不能使用.Except(这里建议)因为列表元素不是同一类型.

有没有更好的方法呢?

linq vb.net lambda

0
推荐指数
1
解决办法
3067
查看次数

lamba:getattr(obj,x)在列表中的奇怪行为

在以下示例中:

class A(object):
    pass
    prop1 = 1
    prop2 = 2
    prop3 = 3
    prop4 = 4

obj = A()
tmp = ['prop1', 'prop2', 'prop3', 'prop4']
getter = [ lambda: getattr(obj, x) for x in tmp ]
Run Code Online (Sandbox Code Playgroud)

我总是4在打电话给getter:

[getter[i]() for i in range(4)]
#[4, 4, 4, 4]
Run Code Online (Sandbox Code Playgroud)

为什么!?

python lambda list getattr

0
推荐指数
1
解决办法
519
查看次数

如何提供命名函数来映射没有lambdas

我想Future通过使用较少的lambda 来使我的用法更具建设性.目前我正在使用map和lambdas来访问期货的结果.例如:

val rateQuote = future {
  connection.getCurrentValue(USD)
}
val purchase = rateQuote map { quote =>  
  if (isProfitable(quote)) connection.buy(amount, quote)
  else throw new Exception("not profitable")
}
purchase onSuccess {
  case _ => println("Purchased " + amount + " USD")
}
Run Code Online (Sandbox Code Playgroud)

map我不想为每个提供lambda(匿名函数),而是提供一个命名函数/方法.我该怎么办?例如:

val rateQuote = future {
  connection.getCurrentValue(USD)
}
def namedFunction(arg: Arg) = 
  if (isProfitable(quote)) connection.buy(amount, quote)
  else throw new Exception("not profitable")

val purchase = rateQuote map { quote => namedFunction }
Run Code Online (Sandbox Code Playgroud)

甚至更好

val purchase = rateQuote …
Run Code Online (Sandbox Code Playgroud)

lambda scala future anonymous-function

0
推荐指数
1
解决办法
104
查看次数

深入研究python:lambda表达式:逻辑消歧

我正在阅读关于lambdas(潜入python)并且我已经执行了一个示例代码,我得到的结果与文本状态不同.它是example 4.21:

processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
Run Code Online (Sandbox Code Playgroud)

这是我的py 2.7控制台输出:

>>> collapse = True
>>> processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
>>> processFunc("this   is\na\ttest")
'this is a test'
>>> collapse = False
>>> processFunc("this   is\na\ttest")
'this is a test'
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,无论collapse值是什么,都会返回第一个lambda表达式.我的思维或python版本发生了变化,或者为什么我的结果与这本传奇的书籍有所不同?

python lambda

0
推荐指数
1
解决办法
111
查看次数