【发布时间】:2014-08-27 11:21:56
【问题描述】:
我前面的消息不正确,不要在其他帖子中得到答案。
这是我遇到问题的代码部分。
Libelle_TOT 和 Groupe_Alerte 是 VarChar(50)
foreach (var donneesDUMP in don)
{
if (cap.Any(c => c.PMRQTOTM == donneesDUMP.PMRQTOTM))
{
if(!cap.Any(c => c.Libelle_TOT == donneesDUMP.Libelle_TOT))
{
cnn.Resultat.Add(new Resultat
{
NomTable = "CapitalisationActuelle",
Groupe_D_alerte = donneesDUMP.Groupe_Alerte,
NomChamp = "PMRQTOTM",
TOTMPMRQ = donneesDUMP.PMRQTOTM,
SiModifie = "Libelle TOT",
LibelléTOTAvant = cap.Select(c => c.Libelle_TOT).FirstOrDefault(),
//LibelléTOTAvant = cap.Any(c => !string.IsNullOrEmpty(c.Libelle_TOT))
//? cap.Select(x => x.Libelle_TOT).First(l => !string.IsNullOrEmpty(l))
//: " ",
LibelléTOTApres = donneesDUMP.Libelle_TOT,
Remarque = "Modifie"
});
}
两个
LibelléTOTAvant = cap.Select(c => c.Libelle_TOT).FirstOrDefault(),
和
LibelléTOTAvant = cap.Any(c => !string.IsNullOrEmpty(c.Libelle_TOT))
? cap.Select(x => x.Libelle_TOT).First(l => !string.IsNullOrEmpty(l))
: " ",
有效,我没有任何构建错误。但每次我遇到一个问题时,可能是 .First() 和 .FirstOrDefault()。它总是写第一个 Libelle_TOT,而不是好的。
这是我得到的一个例子: http://zupimages.net/viewer.php?id=14/35/6ri4.png
LibelléTOTAvant 有时具有相同的值 (test5),因为 test5 是表 capitalisationActuelle 的第一行,但它不是正确的值。例如,对于 LibelléTOTApres = qfd,我应该得到 test3 而不是 test5,等等。
【问题讨论】:
-
我不完全确定你期望它应该做什么?什么是“好人”?你自己说它“总是写第一个……”——这正是 First/FirstOrDefault 应该的——因此得名。
-
@Slava 您确实回答了另一个问题 Slava。但现在我的问题不同了。它有效,但没有给出正确的答案。
标签: c# wpf database linq visual-studio-2013