8.1.3 在 C# 中使用函数集合

本文介绍如何在C#中使用函数集合及LINQ扩展方法Count来统计高风险贷款测试的数量,并据此决定是否提供贷款。

8.1.3 在 C# 中使用函数集合

 

    考虑户贷款端时,我们想要执行所有测试,并统计返回 true 的测试数(指高风险)。如果数量为零个或一,程序将建议贷款。正常的命令式解决方案是,声明一个变量,使用 foreach 语句枚举测试。在循环中体,执行测试,如果它返回 true,就增加变量。这可以更优雅地实现,通过使用 LINQ 扩展方法 Count (清单 8.3)。

 

Listing 8.3 Executing tests (C#)

 

void TestClient(List<Func> tests, Client client) {
  int issuesCount = tests.Count(f => f(client));
  bool suitable = issuesCount <= 1;
  Console.WriteLine("Client: {0}/nOffer a loan: {1}",
    client.Name, suitable ? "YES" : "NO");
}

var john = new Client {
     Name = "John Doe", Income = 40000, YearsInJob = 1,
     UsesCreditCard = true, CriminalRecord = false
  };
TestClient(GetTests(), john);

 

    在函数术语中,Count 是高阶函数。它取一个谓词作为参数值,统计谓词则返回 true 的元素数。我们使用它来统计有多少测试认为客户不适合贷款。在本例中,集合的元素是一个函数,所以,我们谓词必须取一个函数,返回一个布尔值。我们写的 lambda 函数,执行作为它的参数值传递来的函数,指定客户作为参数值,并返回测试的结果作为谓词的结果。一旦我们要统计失败的测试,计算并输出结果都很容易。描述它的工作原理(即使在这个相对简单的情况下)是复杂的,但如果你认为你正在尝试处理每个元素,就不难理解。

    我们前面提到过,这个示例的 F# 版本实质上是相同的。这是因为,所有必要的功能,如高阶函数,lambda 函数,在集合中存储函数的能力,在 C# 3.0 中也都是可用的。就让我们来看看 F# 的代码。

### 达梦数据库 8.1.3 Maven 驱动版本推荐 对于达梦数据库(DM Database),其官方并未提供直接支持的 Maven 中央仓库依赖项。因此,在项目中集成达梦数据库驱动时,通常需要手动下载 JAR 文件并将其安装到本地 Maven 仓库或企业私有仓库中。 以下是针对达梦数据库服务端 8.1.3 版本的相关建议: #### 手动获取驱动 由于达梦数据库的 JDBC 驱动并非开源软件,开发者需通过官方网站或其他合法渠道下载对应的 `dmjdbc` 驱动包[^2]。具体操作如下: - 访问达梦数据库官网,定位至对应版本(如 DM8 或 DM7)。 - 下载适用于 Java 的 JDBC 驱动程序文件(通常是 `.jar` 格式的压缩包)。 #### 安装到本地 Maven 仓库 如果已获得驱动 JAR 文件,则可以通过以下命令将其安装到本地 Maven 仓库中: ```bash mvn install:install-file \ -Dfile=<path-to-dm-jdbc-driver.jar> \ -DgroupId=com.dameng \ -DartifactId=dameng-db-driver \ -Dversion=8.1.3 \ -Dpackaging=jar ``` 完成上述步骤后,即可在项目的 `pom.xml` 文件中引入该依赖: ```xml <dependency> <groupId>com.dameng</groupId> <artifactId>dameng-db-driver</artifactId> <version>8.1.3</version> </dependency> ``` 需要注意的是,实际使用的驱动版本号可能因厂商更新而有所差异,应以下载的具体驱动名称为准[^3]。 #### 数据源配置示例 假设已完成驱动的安装工作,下面是一个基于 Spring Boot 的数据源配置样例: ```yaml spring: datasource: url: jdbc:dm://localhost:5236/test username: root password: root_password driver-class-name: dm.jdbc.driver.DmDriver ``` 以上配置中的 URL 和用户名/密码字段需依据实际情况调整。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值