이 vb.net 코드를 C#으로 변환하려고합니다.C# 람다 식 VB에서 C로 변환 #
if (txtCompanyName.Text.Trim() != string.Empty)
{
decals = decals.Where(Function(CT_Decal d)(from c in db.CT_Companies
where c.CompanyName.Contains(txtCompanyName.Text.Trim())
select c.CompanyID).ToList().Contains((from t in db.CT_Tanks where t.CargoTankID == d.TankID
select t.CompanyID).Single.ToString()));
}//end if
C#을 오류 :
이름의 함수가 존재하지 않고 CT_Decal는 타입이지만 변수처럼 사용
If (txtCompanyName.Text.Trim() <> String.Empty) Then
decals = decals.Where(Function(d As CT_Decal) (From c In db.CT_Companies Where c.CompanyName.Contains(txtCompanyName.Text.Trim()) Select c.CompanyID).ToList.Contains((From t In db.CT_Tanks Where t.CargoTankID = d.TankID Select t.CompanyID).Single.ToString()))
End If
는 C#에서 나는 코드를 넣어했습니다.
아무도이를 올바르게 변환하는 방법을 알고 있습니까?
'txtCompanyName.Text.Trim()! = string.Empty' 대신 항상'! String.IsNullOrEmpty (txtCompanyName.Text)'를 사용하십시오. – jp2code
또한'ToList()'는 중복되어 있으므로 코드를 컴파일하면 안됩니다 VB에서는'Where'가 술어를 기대하지만 람다가 문자열을 반환하기 때문에. –
@ jp2code 해당 표현식은 동일하지 않습니다. txtCompanyName.Text에 공백 문자 만 있으면 다른 결과가 나타납니다. – phoog