PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_Sharp
[问题] FirstOrDefault vs Get all疑问
楼主:
windofsmile
(微笑之风)
2018-10-17 11:54:49
各位版上的前辈们好
遇到一个瓶颈想请教一下各位大大
大致上的情况是
我有个Service已经成功取出我要的资料 但在筛选的时候出了问题
注解:A Table == 总表 == Taiwan
B Table == 关联资料表 == Taiwan下的 Taipei
section == Taipei 的区域字段 == 在Code中是public Enum
我的目标:
1.新店区所有记录 费用加总 大安区所有记录 费用加总
2.台北区所有费用加总
我的Code大概长这样:
取出资料后
foreach (var m in viewModel.Taiwan)
{
if(m.Taipei !=null) //Taipei是关联的资料表
{
if(m.Taipei.FirstOrDefault().section.Tostring().Equals("HsinTien"))
//因为是Enum所以需要Tostring()
{
Money1 = 0 ;
Money1 += Convert.ToInt32(m.section.FirstOrDefault().Price)
//将Taipei中,记录为"新店区"的费用都加进来
}
if(m.Taipei.FirstOrDefault().section.Tostring().Equals("TaAn"))
{
Money2 = 0 ;
Money2 += Convert.ToInt32(m.section.FirstOrDefault().Price)
}
}
//最后再去做各区费用加总
//在SQL的Table中 HsinTien或TaAn或其他区域的记录会有不止一笔 即重复值
}
目前遇到的情况是
在取得子资料表(Taipei)时,监看式内呈现的资料都正确
像是新店区共3笔 大安区共5笔之类
但在进一步筛选时就爆炸了 目前下中断点 发现问题出在我使用了
FirstOrDefault这个方法,所以导致他只会取得第一笔资料
后面第二笔新店 第二笔大安等重复的资料以及判断式内 该区域的Price就不会累加进来
有查了许多方法,但不知道除了FirstOrDefault LastOrDefault SingleOrDefault等
取得单项的方法之外 有没有哪个方法 或是关键字可以让我取到所有资料的呢?
查过elementAt 但这个是指定第几个元素
另外 也有尝试过
直接if(m.Taipei.section.Equals("区域名"))
但m.Taipei.section会显示ICollection<Taipei>未包含section的定义
没办法直接取得section字段
不知道版上的大大们有没有什么推荐的关键字 或是方法
可以让小弟有个方向再找看看解法的呢?
先谢过愿意回复的大大们<_O_>
作者:
YahooTaiwan
(超可爱南西我老婆)
2018-10-17 12:46:00
foreach?
作者:
jun112561
(孤之界)
2018-10-17 13:39:00
你用的三个方法都是针对抓取单一资料的,我个人的话会选择用Where(System.Linq)里的扩充函式,然后用Foreach加总
作者:
petercoin
(彼得币)
2018-10-17 13:57:00
同上 但是我会直接转成List然后呼叫用.Sum()直接加总
作者:
ian90911
(xopowo)
2018-10-17 14:01:00
where过滤只有新店大安 然后groupby select sum
作者:
Litfal
(Litfal)
2018-10-17 15:43:00
用groupby比较正确为什么你不从 Taipei 甚至 section 的表来捞就好...
作者:
CloudyWing
(孤单ㄉ翼)
2018-10-17 22:21:00
如果要处理的字段不多的话
https://dotnetfiddle.net/hkwLiv
作者:
Litfal
(Litfal)
2018-10-17 22:24:00
数据库设计,应该是section *-0..1 Taipei *-1 Taiwan 吧
作者:
CloudyWing
(孤单ㄉ翼)
2018-10-17 22:39:00
或著是这样
https://dotnetfiddle.net/8sbYlC
话说我总觉得你表设计怪怪的,应该是Litfal大那样才对
继续阅读
[问题] 数据库相对路径
leevince
[问题] MySQL的资料还原
jayzhuang
[问题] 有没有人可以指导一下 C# WPF 如何画课表
phi12345
[问题] PredicateBuilder string互相比较问题
windofsmile
[问题] C# DLL的执行效率
commandoEX
[问题] .net core Filter DI问题
kk0521kk
[问题] 为何richtextbox读取rtf档案会出现乱码?
crybrent
[问题] 中断点的红圈消失了
ac131151
[问题] 防呆写法
abc95007
[问题] MVC框架钻研方向疑问(求学习方向)
windofsmile
Links
booklink
Contact Us: admin [ a t ] ucptt.com