カンマ区切りの値を持つLINQステートメントがあります。フィールドがコンマ区切りの値のいずれかに一致するかどうかを確認したい。
public string IdentifyProductSKU(string Serial)
{
int Len = Serial.Length;
var Split = from ModelSplitter in entities.Models
select ModelSplitter.m_validationMask.Split(',');
var Product = (from ModelI in entities.Models
where ModelI.m_validation == 0 &&
ModelI.m_validationLength == Len &&
ModelI.m_validationMask.Contains(Serial.Substring(ModelI.m_validationStart, ModelI.m_validationEnd))
select ModelI.m_name).SingleOrDefault();
return Product;
}
コードを説明するには:すべてのモデルには、たとえば、複数の識別プロパティがあります。XX1、XX5、XX7はすべて同じ製品です。ここで、シリアル番号を渡すときに、検証マスクに基づいて製品を識別したいと思います。例:XX511122441141はProductAで、YY123414124はProductCです。このクエリでを分割したいので、この行で:
ModelI.m_validationMask.Contains(Serial.Substring(ModelI.m_validationStart, ModelI.m_validationEnd))
検証マスクを分割したいシリアルに検証マスク文字が含まれているかどうかを確認します。これは意味がありますか?