У меня есть один счет. И у меня есть данные из базы данных. Я хочу найти первое совпадающее слово в соответствии с входящим глаголом.Поиск первого слова, которое соответствует двум предложениям
public class HesapPlanı
{
public string hesapKodu { get; set; }
public string hesapAdi { get; set; }
}
запрос
//Actually they come from the database.
List<HesapPlanı> hesap = new List<HesapPlanı>();
hesap.Add(new HesapPlanı { hesapKodu = "100 01 001", hesapAdi = "Kasa" });
hesap.Add(new HesapPlanı { hesapKodu = "120 01 001", hesapAdi = "CARİ KART" });
hesap.Add(new HesapPlanı { hesapKodu = "340 01 001", hesapAdi = "AFYON ÖDEMESİ" });
hesap.Add(new HesapPlanı { hesapKodu = "350 01 001", hesapAdi = "Kasa" });
hesap.Add(new HesapPlanı { hesapKodu = "360 02 001", hesapAdi = "STOPAJ ÖDEMESİ" });
string kalan = null;
string[] liste1 = "GELEN EFT - CARİ ÖDEMESİ".Split(new char[] { ' ', '-' });
string[] liste2 = null;
string sorgu = null;
foreach (var item in hesap.Select(h => h.hesapAdi))
{
liste2 = item.Split(new char[] { ' ', '-' });
var kume = liste1.Intersect(liste2);
sorgu = liste2.Intersect(kume).FirstOrDefault();
if (!string.IsNullOrWhiteSpace(sorgu))
{
kalan = sorgu;
}
}
Console.WriteLine(hesap.Where(m => m.hesapAdi.Contains(kalan)).FirstOrDefault().hesapKodu);
В результате этих операций: "340 01 001"
результат, который должен быть на самом деле: "120 01 001"
Результатом является список. Я хотел получить единственный результат: «340 01 001». Результат: «CARİ» Вернуться. –