我有这段代码:
foreach(var planning in Planning)
{
if (onlyOneMatrice)
{
if (idMatrice == null || planning.IDMatrice == idMatrice)
{
idMatrice = planning.IDMatrice;
}
else
{
onlyOneMatrice = false;
}
}
else
{
idMatrice = null;
_ErrorMatrice = $"Error";
}
}
}
谁丑。我正在尝试使用Linq来减少它,但是我必须在某个地方弄错了。有我的测试:
bool IsMonoOrEmptyMatrice()
{
var id = Planning.FirstOrDefault(x=> { return x.IDMatrice != null});
return id==null || Planning.All( x => { return x.IDMatrice == null || x.IDMatrice == id});
}
但是每次都返回null。
我有一个observableCollection“计划”,每个对象都包含一个“ idMatrice”数据。 我要检查的是列表上的所有idMatrices都相同。
示例:对于要扫描的对象“ A”,所有矩阵都必须相同。如果找到两个不同的矩阵,我将返回错误消息。
我也想到了类似的东西:
Planning.Distinct().Count() > 1 ? "somethingHere" : null ;
如果有人有建议.....在此先谢谢您
编辑:计划对象:
public partial class Planning
{
public System.DateTime Jour { get; set; }
public string Matricule { get; set; }
public Nullable<int> Cycle { get; set; }
public string Type_Jour { get; set; }
public Nullable<System.DateTime> Heure_début1 { get; set; }
public Nullable<System.DateTime> Heure_fin1 { get; set; }
public string Type_Prise1 { get; set; }
public string IDEtablissement1 { get; set; }
public string IDSection1 { get; set; }
public Nullable<int> Couleur1 { get; set; }
public bool Visible1 { get; set; }
public string Type_Durée { get; set; }
public string IDEtablissement_Durée { get; set; }
public string IDSection_Durée { get; set; }
public string IDService_Durée { get; set; }
public Nullable<System.DateTime> Date_MAJ { get; set; }
public string IDMatrice { get; set; }
}
答案 0 :(得分:2)
检查此代码段是否符合您的要求
// check if any IdMatrice is null
if(Planning.Any(p => p.IDMatrice == null))
//return error
if(Planning.GroupBy(p => p.IDMatrice).Count() > 1)
// list is not identical
else
// list is identical