Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_dotnet
提交
fdf5e396
S
skill_tree_dotnet
项目概览
CSDN 技术社区
/
skill_tree_dotnet
通知
30
Star
6
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_dotnet
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
fdf5e396
编写于
12月 15, 2021
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成第1章
上级
43fb5281
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
167 addition
and
1 deletion
+167
-1
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.json
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.json
+6
-0
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.md
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.md
+111
-0
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery/Program.cs
.../1..NET初阶/1.入门/5..NET Standard概述/StandardQuery/Program.cs
+36
-0
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery/StandardQuery.csproj
...1.入门/5..NET Standard概述/StandardQuery/StandardQuery.csproj
+10
-0
data/1..NET初阶/1.入门/5..NET Standard概述/config.json
data/1..NET初阶/1.入门/5..NET Standard概述/config.json
+4
-1
未找到文件。
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.json
0 → 100644
浏览文件 @
fdf5e396
{
"type"
:
"code_options"
,
"author"
:
"huanhuilong"
,
"source"
:
"StandardQuery.md"
}
\ No newline at end of file
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery.md
0 → 100644
浏览文件 @
fdf5e396
# .NET 规范实现情况的查询
.NET Standard 是针对多个 .NET 实现推出的一套正式的 .NET API 规范。
请编写一段代码,支持功能:
**查询支持某个 .NET Standard 版本的所有.NET 实现的最低版本**
。
执行运行命令
`dotnet new console --output StandardQuery`
创建测试项目,添加测试代码如下:
```
csharp
// 下面的C#列表,表示.NET Standard的版本号列表
var
dotnetStandard
=
new
List
<
string
>(){
"1.0"
,
"1.1"
,
"1.2"
,
"1.3"
,
"1.4"
,
"1.5"
,
"1.6"
,
"2.0"
,
"2.1"
};
// 而下面的C#字典,表示了.NET 每种实现支持上述对应.NET Standard 规范的最低版本:
var
dotnetImplements
=
new
Dictionary
<
string
,
List
<
string
>>(){
[
".NET 和.NET Core"
]=
new
List
<
string
>(){
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"2.0"
,
"3.0"
},
[
".NET Framework"
]=
new
List
<
string
>(){
"1"
,
"4.5"
,
"4.5"
,
"4.5.1"
,
"4.6"
,
"4.6.1"
,
"4.6.1^2"
,
"4.6.1"
,
"2"
,
"4.6.1^2"
,
"N/A3"
},
[
"Mono"
]=
new
List
<
string
>(){
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"5.4"
,
"6.4"
},
[
"Xamarin.iOS"
]=
new
List
<
string
>(){
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.14"
,
"12.16"
},
[
"Xamarin.Mac"
]=
new
List
<
string
>(){
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.8"
,
"5.16"
},
[
"Xamarin.Android"
]=
new
List
<
string
>(){
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"8.0"
,
"10.0"
},
[
"通用 Windows 平台"
]=
new
List
<
string
>(){
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0.16299"
,
"10.0.16299"
,
"10.0.16299"
,
"待定"
},
[
"Unity"
]=
new
List
<
string
>(){
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2021.2"
}
};
var
dotnetStandardQuery
=
new
Dictionary
<
string
,
List
<
string
>>();
//TODO(You): 请在此实现代码
Console
.
WriteLine
(
"以下各种.NET的实现,支持了 .NET Standard 2.1的最低版本是:"
);
Console
.
WriteLine
(
"===="
);
foreach
(
var
lowlowerSupportImplementVersion
in
dotnetStandardQuery
[
"2.1"
]){
Console
.
WriteLine
(
"* "
+
lowlowerSupportImplementVersion
);
}
```
执行运行命令
`dotnet run --project StandardQuery`
后输出:
```
bash
以下各种.NET的实现,支持了 .NET Standard 2.1的最低版本是:
====
*
.NET 和.NET Core,版本:3.0
*
.NET Framework,版本:2
*
Mono,版本:6.4
*
Xamarin.iOS,版本:12.16
*
Xamarin.Mac,版本:5.16
*
Xamarin.Android,版本:10.0
*
通用 Windows 平台,版本:待定
*
Unity,版本:2021.2
```
以下正确的实现代码是?
## 答案
```
csharp
int
i
=
0
;
foreach
(
var
standardVersion
in
dotnetStandard
){
var
lowerSupportImplementVersions
=
new
List
<
String
>();
foreach
(
var
dotnetImplement
in
dotnetImplements
){
lowerSupportImplementVersions
.
Add
(
dotnetImplement
.
Key
+
",版本:"
+
dotnetImplement
.
Value
[
i
]);
}
dotnetStandardQuery
.
Add
(
standardVersion
,
lowerSupportImplementVersions
);
i
++;
}
```
## 选项
### 取值不对
```
csharp
int
i
=
0
;
foreach
(
var
standardVersion
in
dotnetStandard
){
var
lowerSupportImplementVersions
=
new
List
<
String
>();
foreach
(
var
dotnetImplement
in
dotnetImplements
){
lowerSupportImplementVersions
.
Add
(
dotnetImplement
.
Key
+
",版本:"
+
dotnetImplement
);
}
dotnetStandardQuery
.
Add
(
standardVersion
,
lowerSupportImplementVersions
);
i
++;
}
```
### 少了分号
```
cshapp
int i=0
foreach(var standardVersion in dotnetStandard){
var lowerSupportImplementVersions = new List<String>()
foreach(var dotnetImplement in dotnetImplements){
lowerSupportImplementVersions.Add(dotnetImplement.Key+",版本:"+dotnetImplement.Value[i])
}
dotnetStandardQuery.Add(standardVersion, lowerSupportImplementVersions)
i++
}
```
### 列表初始化不对
```
csharp
int
i
=
0
;
foreach
(
var
standardVersion
in
dotnetStandard
){
var
lowerSupportImplementVersions
=
[];
foreach
(
var
dotnetImplement
in
dotnetImplements
){
lowerSupportImplementVersions
.
Add
(
dotnetImplement
.
Key
+
",版本:"
+
dotnetImplement
.
Value
[
i
]);
}
dotnetStandardQuery
.
Add
(
standardVersion
,
lowerSupportImplementVersions
);
i
++;
}
```
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery/Program.cs
0 → 100644
浏览文件 @
fdf5e396
// See https://aka.ms/new-console-template for more information
var
dotnetStandard
=
new
List
<
string
>(){
"1.0"
,
"1.1"
,
"1.2"
,
"1.3"
,
"1.4"
,
"1.5"
,
"1.6"
,
"2.0"
,
"2.1"
};
var
dotnetImplements
=
new
Dictionary
<
string
,
List
<
string
>>(){
[
".NET 和.NET Core"
]=
new
List
<
string
>(){
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"1.0"
,
"2.0"
,
"3.0"
},
[
".NET Framework"
]=
new
List
<
string
>(){
"1"
,
"4.5"
,
"4.5"
,
"4.5.1"
,
"4.6"
,
"4.6.1"
,
"4.6.1^2"
,
"4.6.1"
,
"2"
,
"4.6.1^2"
,
"N/A3"
},
[
"Mono"
]=
new
List
<
string
>(){
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"4.6"
,
"5.4"
,
"6.4"
},
[
"Xamarin.iOS"
]=
new
List
<
string
>(){
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.14"
,
"12.16"
},
[
"Xamarin.Mac"
]=
new
List
<
string
>(){
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.0"
,
"3.8"
,
"5.16"
},
[
"Xamarin.Android"
]=
new
List
<
string
>(){
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"7.0"
,
"8.0"
,
"10.0"
},
[
"通用 Windows 平台"
]=
new
List
<
string
>(){
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0"
,
"10.0.16299"
,
"10.0.16299"
,
"10.0.16299"
,
"待定"
},
[
"Unity"
]=
new
List
<
string
>(){
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2018/1"
,
"2021.2"
}
};
var
dotnetStandardQuery
=
new
Dictionary
<
string
,
List
<
string
>>();
int
i
=
0
;
foreach
(
var
standardVersion
in
dotnetStandard
){
var
lowerSupportImplementVersions
=
new
List
<
String
>();
foreach
(
var
dotnetImplement
in
dotnetImplements
){
lowerSupportImplementVersions
.
Add
(
dotnetImplement
.
Key
+
",版本:"
+
dotnetImplement
.
Value
[
i
]);
}
dotnetStandardQuery
.
Add
(
standardVersion
,
lowerSupportImplementVersions
);
i
++;
}
Console
.
WriteLine
(
"以下各种.NET的实现,支持了 .NET Standard 2.1的最低版本是:"
);
Console
.
WriteLine
(
"===="
);
foreach
(
var
lowlowerSupportImplementVersion
in
dotnetStandardQuery
[
"2.1"
]){
Console
.
WriteLine
(
"* "
+
lowlowerSupportImplementVersion
);
}
data/1..NET初阶/1.入门/5..NET Standard概述/StandardQuery/StandardQuery.csproj
0 → 100644
浏览文件 @
fdf5e396
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
data/1..NET初阶/1.入门/5..NET Standard概述/config.json
浏览文件 @
fdf5e396
...
@@ -2,5 +2,7 @@
...
@@ -2,5 +2,7 @@
"node_id"
:
"csharp-65d2fd88ed1e44a6a646be4f3c302e50"
,
"node_id"
:
"csharp-65d2fd88ed1e44a6a646be4f3c302e50"
,
"keywords"
:
[],
"keywords"
:
[],
"children"
:
[],
"children"
:
[],
"export"
:
[]
"export"
:
[
"StandardQuery.json"
]
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录