问题描述
这是我的错误所在:
foreach (var donneesDump in don)
{
if (cap.Any(c => c.PMRQTOTM == donneesDump.PMRQTOTM))
{
if(!cap.Any(d => d.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.Any(c => c.Libelle_TOT),
LibelléTOTApres = donneesDump.Libelle_TOT,
Remarque = "Ajoute"
});
}
}
}
在线LibelléTOTAvant = cap.Any(c => c.Libelle_TOT)
我有两个错误,最后都相同:
On line LibelléTOTAvant = cap.Any(c => c.Libelle_TOT)
I have two errors, which are finally the same:
我试图做一个ToString()
方法来解决这个问题,像这样:
I have tried to do a ToString()
Method to solve the problem, like this:
LibelléTOTAvant = ToString(cap.Any(c => c.Libelle_TOT)),
然后出现错误:
这不是我第一次遇到这种错误,但是我仍然找不到解决方法.
It isn't the first time I have this kind of error, but I still don't find how solve this..
先谢谢了.问候.
这是我的位置.
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,而不是好的.
works. But each time I have one problem, probably with .First() and .FirstOrDefault().It always write the first Libelle_TOT, not the good one.
推荐答案
我相信Libelle_TOT
是一个字符串(来自Cannot implicitly convert type 'string' to 'bool'.
错误消息)
I believe Libelle_TOT
is a string (from the Cannot implicitly convert type 'string' to 'bool'.
error message)
cap.Any(c => c.Libelle_TOT)
在这种情况下没有意义,因为Any
应该以Func<T, bool>
作为参数(返回布尔值),并且您传递Func<T, string>
.
cap.Any(c => c.Libelle_TOT)
doesn't make sense in this case, as Any
should have a Func<T, bool>
as argument (something returning a bool) and you pass a Func<T, string>
.
所以你应该做
cap.Any(c => !string.IsNullOrEmpty(c.Libelle_TOT))
例如,
或其他任何需要返回布尔值的东西.
for example, or anything else needed which would return a bool.
,如果LibelléTOTAvant
是字符串
cap.Any(c => !string.IsNullOrEmpty(c.Libelle_TOT))
? <something which is a string>
: <something else which is a string>
编辑
例如
cap.Any(c => !string.IsNullOrEmpty(c.Libelle_TOT))
? cap.Select(x => x.Libelle_TOT).First(l => !string.IsNullOrEmpty(l))
: 'No Label'
或者在这种情况下,您可以
or in this case, you could do
cap.Select(x => x.Libelle_TOT).FirstOrDefault(l => !string.IsNullOrEmpty(l)) ?? 'No Label'
这篇关于C#方法'ToString'的无重载采用1个参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!