LiveCharts2
LiveCharts2 是一个简单、灵活、交互式以及功能强大的跨平台图表库。
图表示例
LiveCharts2 提供了多种类型的图表,包括折线图、面积图、柱状图、散点图、饼图等。同时,它还支持多个图表联动显示,支持动态更新数据、自定义样式和动画效果等功能。
在控制台程序中生成图像
LiveChartsCore.SkiaSharpView
using LiveChartsCore;
using LiveChartsCore.Geo;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Drawing.Geometries;
using LiveChartsCore.SkiaSharpView.SKCharts;
var cartesianChart = new SKCartesianChart
{
Width = 900,
Height = 600,
Series = new ISeries[]
{
new LineSeries<int> { Values = new int[] { 1, 5, 4, 6 } },
new ColumnSeries<int> { Values = new int[] { 4, 8, 2, 4 } }
}
};
// you can save the image to png (by default
// or use the second argument to specify another format.
cartesianChart.SaveImage("cartesianChart.png";
var pieChart = new SKPieChart
{
Width = 900,
Height = 600,
Series = new ISeries[]
{
new PieSeries<int> { Values = new int[] { 10, } },
new PieSeries<int> { Values = new int[] { 6 } },
new PieSeries<int> { Values = new int[] { 4 } }
}
};
pieChart.SaveImage("pieChart.png";
var geoHeatMap = new SKGeoMap
{
Width = 900,
Height = 600,
Series = new IGeoSeries[]
{
new HeatLandSeries
{
Lands = new HeatLand[]
{
new( { Name = "mex", Value = 10 },
new( { Name = "usa", Value = 15 },
new( { Name = "can", Value = 8 }
}
}
}
};
geoHeatMap.SaveImage("geoHeatMap.png";
// alternatively you can get the image and do different operations:
using var image = cartesianChart.GetImage(;
using var data = image.Encode(;
var base64CartesianChart = Convert.ToBase64String(data.AsSpan(;
Console.WriteLine("Images saved at the root folder!";
项目地址: https://github.com/beto-rodriguez/LiveCharts2
Ryujinx - 基于 C# 开发的任天堂 Switch 模拟器
https://github.com/Ryujinx/Ryujinx-Games-List/issues
- 塞尔达传说:荒野之息 (The Legend of Zelda: Breath of the Wild
- 精灵宝可梦:剑/盾 (Pokémon Sword/Shield
- 异度之刃2 (Xenoblade Chronicles 2
- 巨人的召唤 (Attack on Titan 2
- 火焰纹章:风花雪月 (Fire Emblem: Three Houses
- 超级马力欧 奥德赛 (Super Mario Odyssey
- 奥德赛战记 (Octopath Traveler
- 勇者斗恶龙 XI S:彩虹之岛版 (Dragon Quest XI S: Echoes of an Elusive Age
同时,Ryujinx 还拥有一个活跃的社区,可以帮助用户解决问题并提供支持。
Mapper, 一个比 AutoMapper 更快的对象映射库
Mapster 是一个 .NET 库,它提供了一种简单的方式来实现对象之间的映射。它使用了一个基于约定的自动映射策略,让你可以轻松地将一个对象转换为另一个对象。
安装
使用 NuGet CLI 安装 Mapster:
Install-Package Mapster
或者使用 .NET Core CLI 安装 Mapster:
dotnet add package Mapster
映射到新对象
var destObject = sourceObject.Adapt<Destination>(;
映射到现有对象
sourceObject.Adapt(destObject;
依赖注入
还可以通过依赖注入获取 IMapper 实例,所以在从 automapper 迁移到 Mapster 时,基本上不需更改代码。
services.AddMapster(;
然后和 DI 一起使用
public class Test
{
public Test(IMapper mapper
{
var sourceObject = mapper.Adapt<Destination>(;
}
}
为什么选择 Mapster?
Mapster 旨在提高速度和内存效率。它可以获得 4 倍的性能提升,同时仅仅使用了 1/3 的内存。并且可以获得高达 12 倍的性能提升。
测试报告
项目地址:https://github.com/MapsterMapper/Mapster