c# - C#在数组列表中搜索特定值并返回相关值
问题描述
我希望这不是一个愚蠢的简单问题。我很简单地想弄清楚如何通过 C# 在 SQLite 中操作一个相对简单的表。
我希望获取一个参数并在数组列表中搜索参数匹配的一个这样的数组,并在同一个数组中返回一个相关变量。
例如,列表中的数组可能在哪里。
Name IATA
Brisbane BNE
sqlbind:
public static List<Airport> LoadAirports()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
var output = cnn.Query<Airport>("select * from Airport", new DynamicParameters());
return output.ToList();
}
}
班上:
class Airport
{
int Id { get; set; }
string Name { get; set; }
string LocationName { get; set; }
string IATA { get; set; }
string PortType { get; set; }
string PortOwner { get; set; }
string MotherPort { get; set; }
bool Active { get; set; }
bool IsApplyMeetAndGreet { get; set; }
decimal MeetAndGreet { get; set; }
}
主程序:
List<Airport> Airports = new List<Airport>();
public FreightCalculator()
{
LoadAirportsList();
string OriginName = OriginInput.Value;
var OriginAirport = Airports.Where(s => s.Name == OriginName);
}
private void LoadAirportsList()
{
Airports = SqliteDataAccess.LoadAirports();
}
我尝试了 Where、Equals、For each indexing 等的各种组合。总是会出现某种错误。
上述 Airports.Where 的错误是 s.Name 由于其保护级别而无法访问。
如果我做:
var OriginAirport = Airports.Where(Name => Name == OriginName);
我收到一个错误,其中操作数 == 不能与 Airport 和 String 一起使用(尽管 Name 是 Airport 中的字符串。)
我要么遗漏了一些简单的东西,要么把它弄得比它需要的更复杂。找到匹配的机场后,我需要返回 IATA 代码。
我设想看起来像这样:
var OriginIATA = OriginAirport.IATA;
我很累,感觉很笨。请帮忙 :(
解决方案
由于您将 Airport 类的所有成员都声明为属性,因此我假设您想公开它们。
您得到的错误是因为它们是私有成员,无法在课堂外访问。
将“机场”类更改为:
class Airport
{
public int Id { get; set; }
public string Name { get; set; }
public string LocationName { get; set; }
public string IATA { get; set; }
public string PortType { get; set; }
public string PortOwner { get; set; }
public string MotherPort { get; set; }
public bool Active { get; set; }
public bool IsApplyMeetAndGreet { get; set; }
public decimal MeetAndGreet { get; set; }
}
推荐阅读
- c++ - 阵列如何提供存储?
- entity-framework-migrations - 为 Entity Framework 6.4 运行 Add-Migrations
- java - 为什么我会收到“createCriteria is not valid without active transaction”异常?休眠 5.6.0 最终版
- excel - 如何使 SUMIF 中的 IF 条件自动扩展到更多列?
- reactjs - BrowserRouter 基本名称在 gh 页面上不起作用
- java - Split string and add unique strings to list in java
- google-apps-script - 如何使用 Apps 脚本将 google sheet 文件的数据导入其他 google sheet 文件?
- python - 赋值前引用的局部变量“工具”
- amazon-web-services - 将 AWS Amplify 前端与 EC2 实例连接起来?
- css - Tailwind 文本颜色在悬停时不会改变