把if else 转化为拉姆达表达式

如何简化这段代码,用拉姆达表达式

 decimal? money = 0;
        if (grade[0].Grade_level > _Student.Stu_consume)
        {
            money = grade[0].Grade_level - _Student.Stu_consume;
        }
        else if (grade[0].Grade_level < _Student.Stu_consume && grade[1].Grade_level > _Student.Stu_consume)
        {
            money = grade[1].Grade_level - _Student.Stu_consume;
        }
        else if (grade[1].Grade_level < _Student.Stu_consume && grade[2].Grade_level > _Student.Stu_consume)
        {
            money = grade[2].Grade_level - _Student.Stu_consume;
        }
        else if (grade[2].Grade_level < _Student.Stu_consume && grade[3].Grade_level > _Student.Stu_consume)
        {
            money = grade[3].Grade_level - _Student.Stu_consume;
        }
        else if (grade[3].Grade_level < _Student.Stu_consume && grade[4].Grade_level > _Student.Stu_consume)
        {
            money = grade[4].Grade_level - _Student.Stu_consume;
        }
        else if (grade[4].Grade_level < _Student.Stu_consume)
        {
            money = -1;
        }
c#

1个回答

假设grade是排序好的,你可以这么写

 money = grade.Select(x => x.Grade_level).FirstOrDefault(x => x > _Student.Stu_consume, _Student.Stu_consume - 1) - _Student.Stu_consume;
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
拉姆达表达式、Stream
Q:最近接触到Stream流式编程遇到了一些错误,故做一次总结复习用。 一、λ表达式 通常我们会用一个类实现接口,然后构造对象作为参数传入,也可以使用匿名类,用λ表达式可以简化匿名类的编写,用例如下。 class Worker implements Runnable { @Override public void run() { ...
ASP.Net 拉姆达表达式
1.Lambda‘ =&amp;gt;’是什么意思? 是lambda表达式,表示一个匿名函数,=&amp;gt;前面的是参数,后面的是函数体。图中P是任意标识符 可以用任意字符串来代表2.删除3.修改4.跨越表 用Add()添加5.两个表联合将stu marks两个表信息一并显示  ...
C# 匿名方法和拉姆达表达式
“`“`代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 拉姆拉表达式 { /// <summary> /// C# 匿名方法和拉姆达表达
拉姆达表达式如何使用
public virtual PageInfo Query(int pageNumber, int pageSize, Expression> where);这里有一个定义rnrnpublic string GetOperation(int pageIndex, int pageSize)rnrn//pageIndex=0,pageSize=10,有idrn List info = (List)this.Query(pageIndex, pageSize, //这里如何使用,) ;rn return .....;rn rn 新手求教
拉姆达表达式相关知识
拉姆达表达式                拉姆达表达式是创建匿名函数的另一种方法。因此,拉姆达表达式可以赋值给委托。虽然主要在操作LINQ中使用拉姆达表        达式,但是这种表达式也适用于委托和事件。                拉姆达表达式运算符:                所有的拉姆达表达式都是用新的拉姆达运算符“=>”,该运算符讲拉姆达表达式分为两个部分
jdk8新特性之拉姆达表达式
package test.java; /* 包含三个部分: 一个括号内用逗号分隔的形式参数,参数是函 数式接口里面方法的参数 一个箭头符号:-&amp;gt; 方法体,可以是表达式和代码块,方法体函数 式接口里面方法的实现,如果是代码块,则必须 用{}来包裹起来,且需要一个return 返回值,但 有个例外,若函数式接口里面方法返回值是 void,则无...
拉姆达表达式C#的新特性
我在网上看到的就下下来啦,给大家一个参考,是关于拉姆达表达式的一些资料
关于拉姆达表达式的疑问
[code=C#]rn public class LambdaTestrn rnrn static void Main()rn rn var counter = 0;rn WriteStream(() => counter++);rn Console.WriteLine("Final value of counter: 0", counter);rnrn rn static void WriteStream(Func counter)rn rn for (var i = 0; i < 10; ++i)rn rn Console.WriteLine("0, ", counter());rn rn rn rnrn[/code]rnrn给详细讲讲。不是很明白
把字符串转化为表达式
本例子包含Interop.MSScriptControl.dll 将一串合法的字符串,转换为数学表达式,并计算出结果。
Java8新特性(拉姆达表达式lambda)
http://blog.csdn.net/qq_35805528/article/details/53264301
问个拉姆达表达式排序问题····
如何根据我传过来的参数进行排序呢?????rnrn List roomreports = new List();rnrnROOMREPORT是个类,有七八个属性····rnrn我想根据我传过来的参数,返回这个集合排序后的集合rnrn但是因为属性太多,也不能一个个if来判断把····rnrn求大家帮帮看看 rnrnroomreports.OrderBy(r => r.[color=#FF0000]DOCUMENT_NUM[/color])rnrn[color=#FF0000]DOCUMENT_NUM[/color]这个想换成参数的形式能做到吗???
如何用拉姆达表达式进行筛选
如何用拉姆达表达式代替foreach进行结果筛选nn```nProductModel productmodel = new ProductModel();n int? prostate_0 = 0;n int? prostate_1 = 0;n int? prostate_2 = 0;n productmodel.Shop = _Shop;n List listcount = productmodel.Listcount();n foreach (ProductModel item in listcount)n n if (item.Pro_stateNum != null)n n switch (item.Pro_state)n n case 0:n prostate_0 = item.Pro_stateNum;n break;n case 1:n prostate_1 = item.Pro_stateNum;n break;n case 2:n prostate_2 = item.Pro_stateNum;n break;n n n n```nn
java8新特性(拉姆达表达式lambda)
一、函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口。 java 8提供 @FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准
拉姆达表达式 多字段 排序 如何做
return query.OrderBy(item => item.TS001)rn .Select(item => new QIPQCapmsonDtorn rn Id = item.Id,rn TS001 = item.TS001,rn TS002 = item.TS002,rn TS003 = item.TS003,rn TS004 = item.TS004,rn TS005 = item.TS005,rn CreateDateTime = item.CreateDateTime,rn CampId = item.QIPQCapm.IDrn ).Paging(filters.page, filters.rows);rn rnrn以上代码 中 return query.OrderBy(item => item.TS001) 只能指定一个排序字段,如果要多字段排序如何改呢,效果如同rnorder by TS001,TS002
C# 委托拉姆达
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace 委托拉姆达 { class Program { //delega...
lambda表达式 拉姆达
lambda表达式拉姆达 学习这个之前,需要明确 有一种接口叫做函数式接口,只允许接口里面只有一个函数 可以使用 @FunctionalInterface进行注解 如果这个接口里面定义了两个方法,就会报错,当然,这种接口主要是针对lambda表达式使用 函数式接口允许: 1.定义默认方法 2.定义静态方法 3.定义Object里的public方法 明确了这一点,然...
Mac 下输入 拉姆达 λ
OS Χ Υοsemite 10.10.5 系统版本。 λ是希腊字母。 方法一:显示字符显示程序。(快捷键:control+command+space 试一下)。 打开如图: 设置下,点开“自定义列表”: 在 选择类别 里找到希腊文。 如此每次打开  显示字符显示程序 找到相应类别,输入搞定。 方法二: 系统偏好设置-键盘-输入源 添加 希腊文 为输入源,每
如何把字符串转化为表达式啊!
我想在文本框里输入一个函数表达式,然后计算X取不同值时的函数值,因为表达式是不固定的,所以不可以直接在程序里写函数.请问该如何转换呢,记得有个什么脚本的,可惜忘记了.
怎样把字符串的表达式 转化为 数字表达式
比如说 Dim a As String = "3 + 4 * 3 - 6 /2 "rn 用什么方法做 才可以得到rn dim b as int16 = 3 + 4 * 3 - 6 /2
[难度][高分] 请教如何获取拉姆达表达式的值
请教各位大牛,我碰到以下难题:rnrn假如我有以下代码:rn[code=csharp]rnpublic class Userrnrn public string Name get; set; rn public int Age set; get; rnrnrnpublic bool GetResult(Expression> expression)rnrn //return ...rnrn[/code]rnrn我这样调用:rn[code=csharp]rnprivate void button1_Click(object sender, EventArgs e)rnrn User user = new User();rn user.Name = "David";rn user.Age = 12;rnrn bool rst = GetResult(p => p.Age > 10);rnrn[/code]rnrn想请教下这个 GetResult 应该怎么写,谢谢!rnPS:请别绕开这个方法,这只是个例子,主要是想在GetResult方法里获取到拉姆达表达式的值(这里是p.Age)
C# lambda拉姆达表达式基础(匿名方法的升级版)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Examples { delegate double MyDel(int par); class Program { ...
委托拉姆达表达式 麻烦看下这段代码什么意思
_order是实体类的实例rn[code=csharp]rn int or_id = Create(_order, (obj) =>rn rn _order.Member = _Member;rn _order.Or_number = DateTime.Now.ToString("yyyyMMddHHmmssffff");rn _order.Or_payPrice = 0;rn _order.Or_buyerName = _Member.M_realName;rn _order.Or_buyerName = address[0];rn _order.Or_buyerTel = address[1];rn _order.Or_buyerAddress = address[2];rn );rn[/code]
这里是拉姆达的第一个博客~~
这里是拉姆达的第一个博客~~ 发生了什么呢? 最近我的谷歌和火狐浏览器均出现了不同程度的网页打开慢、甚至无法打开等问题。 错误显示有: 1. 2. 好久好久还是个空白… 还不太会用这个写东西,也不知道解决办法…-_-|| 溜了溜了 ...
关于拉姆达,委托,匿名函数
相信您一定听过这样的几个名词,拉姆达,委托,匿名函数。这三个名词之间有着一定的联系,至于他们的定义百度有很多,我来说说我理解的它们之间的联系和区别。 首先是匿名函数,在c# 2.0时加入了匿名函数。基本上是在定义委托的时候使用匿名函数。如下代码: //声明一个委托类型 delegate void DelTest(); public void DoSomeThing() { Del...
c# 用拉姆达表达式写法如何实现左连接
左连接,如下是linq 写法,用拉姆达表达式写法如何写?注意是左连接rn[code=csharp]rnvar list = from r in dc.tblRoomsrn join ui in dc.tblUserInfosrn on r.UserName equals ui.UserNameinto userroomsrnrn from ur in userrooms.DefaultIfEmpty()rnrn select newrn rn FirstName = (ur.FirstName == null) ? "N/A" : ur.FirstName,rn LastName = (ur.LastName == null) ? "N/A" : ur.LastName,rn RoomName = r.Namern ;rn[/code]
哪位大哥给解释下拉姆达表达式是什么?
哪位大哥给解释下拉姆达表达式是什么?
这段SQL语句在EF中用拉姆达表达式怎么写
select cu.* ,co.*,le.* from mpCustomer as cu left join mpCompany as co rnon cu.CompanyId=co.CompanyIdrnleft join mpLevel as le on cu.LevelId=le.LevelIdrnrn我想问问高手,这段代码在拉姆达表达式中要怎么写。找了好半天,也没弄出来
后序表达式转化为中序表达式
一.后序表达式转化为中序表达式 后序表达式 2 3 * 2 1 - / 3 4 1 - * +   中序表达式 ( ( ( 2 * 3 ) / ( 2 - 1 ) ) + ( 3 * ( 4 - 1 ) ) ) 我们在学习数据结构的时候就知道需要用到栈 通过观察不难发现我们在后序表达式中每次遇到“+”,“-”,“*”,“/”时都要处理对应的前2个数,例如2 3 * 处理为( 2 * 3 ...
字符怎样才能转化为表达式?
各位大虾:rn 我才学c语言不久,我有一个问题请教rn 就是比如我定义了一个字符数组,我怎样把他变成表达式呢rn char * p="b+c";rn 把p的内容变成表达式rn 谢谢
常规表达式转化为逆波兰式
常规表达式转化为逆波兰式,利用栈和Java数组的搭配,还有优先权的思想。
将表达式转化为二叉树
本来挺简单一个问题结果折腾了有几天。 网上也没有比较合理的答案。 需要两个栈,一个栈存储操作符,另一个栈存储树或者节点。 代码如下: main: #include"Expression_bitree.h" Status print(Data i) {  using namespace std;  if (i.ischar)   cout  else   cout  s
关系代数转化为元组表达式
有三个关系rnS(SNO, SNAME, AGE, SEX, SDEPT)rnSC(SNO, CNO, GRADE)rnC(CNO, CNAME, CDEPT, TNAME)rn分别是rn学生关系(学号, 姓名, 年龄, 性别, 学院)rn关系(学号, 课程号, 分数)rn课程关系(课程号, 课程名, 所属学院, 老师名)rnrn问题:检索WANG同学不学的课程的课程号。rnrn我写的关系代数是πCNO(SC) - πCNO(σSNAME='WANG' (S <> SC)) /*π是投影操作,σ是选择操作,<>是自然连接操作*/rn关系代数应该正确吧,改写成元组表达式是什么呢? rnrn书上的例题直接写的结果看不懂啊,帮帮忙, 谢谢
如何转化为可计算的表达式?
如何将VCL标准组件TEDIT里的TEXT属性转变为可计算的表达式(假设Edit->Text为1+1)?
Linq,拉姆达表达式多表联合查询强转出错,求大神啊
public IPagedEnumerable GetPageList(MemberOrder model, int page)rn rn return (IPagedEnumerable < OrderDetail >)db.MemberOrders.GroupJoin(db.MemberInfoes, u => u.Member_ID, m => m.Member_ID, (u, m) => new u, m ).GroupJoin(db.OrderInfoes, a => a.u.order_code, ui => ui.order_code, (a, ui) => new a, ui ).Where(mi => mi.a.u.identifier == model.identifier).WhereIf(mi => mi.a.u.CreateDate == model.CreateDate, model.CreateDate.HasValue).OrderByDescending(mi => mi.a.u.CreateDate).Select(o=>o).Page(page);rn rn [img=https://img-bbs.csdn.net/upload/201606/30/1467253053_689554.png][/img]
如何把Excel公式表达式转化为ptg标记?
描述如下:rn把Excel的公式表达式如“3+5” 或"A1-C1"或SUM(A1:F2)等转化成由Excel的ptg标记值组成的byte数组:如:3+5表示成:1e, 03, 00, 1e, 05, 00, 03。rn可能用Jlex和BYyac可以解决,但不知如何操作。rn这其中涉及到表达式的词法分析和语法分析,另外也包括一些诶excel的特定知识.rnrn请各位高手支招.谢谢.
函数式编程之根-拉姆达运算/演算(λ-calculus)
学习函数式编程的大图(big map)/鸟瞰图
EF 6拉姆达数据访问问题
[code=csharp]rn Department result;rn Func Func = x => x.Name == "Sales";rn result = db.Department.AsNoTracking().FirstOrDefault(Func);rn result = db.Department.FirstOrDefault(x => x.Name == "Sales");rn[/code]rnrn两者看起来是一样的,但是结果生成的SQL语句让我非常无语rn[img=https://img-bbs.csdn.net/upload/201409/28/1411919832_138124.png][/img]rn这个按顺序生成的。把拉姆达传给查询就变成了遍历整个表,这不坑爹么?rn请问这是为什么?rn还有,我还是想把拉姆达作为方法参数,请问解决方案是什么。
无效的表达式项 else
一个写程序的人最忌讳的是什么? 如果没有错的话,应该就是粗心了! 假如读者您是因为写程序的时候遇到了这个问题:“无效表达式 else” ,才看到的这篇博客,那么快到吃饭的点了,饿一顿吧! 好吧,先看图: 下面这是源码: #region//确定按钮需要执行的
无效的表达式项else
if (DSLogin.Tables ["UserInfo"].Rows .Count ==0)rn rn Session["Number"]=Convert.ToInt32 (Session["Number"])+1;rn if ( Session["NumTries"]>=Application["MaxTries"])rn rn Response.Redirect ("./failed_login.aspx");rn rn rn elsern rn lblMessage.Text ="你输入的用户名或密码有误,请重新输入";rn rn else rn rn rn Session["UserID"]=DSLogin.Tables ["UserInfo"].Rows [0]["UserID"].ToString ();rn Response.Redirect ("./success_login.aspx");rn rnrn rn为什么最后一个else是无效的表达式项了。它不是和第一个if匹配吗? 为什么是错的!?
if/else三元表达式
1. 帮助学员快速了解Python语句和函数定义和使用:①.赋值语句 ②.条件语句 ③.循环语句 ④.函数定义 ⑤.函数作用域 ⑥.特定函数rn2.以笔记为导向作为讲解内容是本人一贯的授课亮点,一条笔记至少包含一个知识点,200多条笔记帮助学员快速掌握Python200多个知识点rn3.提供授课内容笔记作为课后复习以及工作备查工具rn
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池