Github :https://github.com/jonatasolmartins/smart-strings
SmartStrings 是一个轻量级且直观的 C# 字符串模板库。它添加了扩展方法,.Fill()允许您使用对象、字典或参数数组替换字符串中的占位符,并提供可选的回退方案。
using SmartStrings;
static void Main(string[] args)
{
var template = "Welcome, {user}!";
var result = template.Fill("Alice");
Console.WriteLine(result);
// Output: "Welcome, Alice!"
template = "Hello {name}, your {plan} plan is active.";
result = template.Fill("Jonatas", "Gold");
Console.WriteLine(result);
// Output: "Hello Jonatas, your Gold plan is active."s
template = "Welcome {name}, your ID is {id}.";
result = template.Fill(new { name = "Lucas", id = "12345" });
Console.WriteLine(result);
// Output: "Welcome Lucas, your ID is 12345."
template = "Welcome {name}, your ID is {id}.";
result = template.Fill(new User { Name = "ccc", Id = 1 });
Console.WriteLine(result);
// Output: "Welcome ccc, your ID is 1."
template = "{\"Id\":\"{id}\",\"Name\":\"{name}\",\"Age\":-{age}}";
result = template.Fill(new User { Name = "ccc", Id = 1, Age = 10 });
Console.WriteLine(result);
// Output: "{"Id":"1","Name":"ccc","Age":-10}"
template = "https://api.company.com/v{version}/users/{userId}/orders?date={date:yyyy-MM-dd}&status={status:active}";
result = template.Fill(new
{
version = 2,
userId = "abc123",
date = DateTime.Now,
status = "pending"
});
Console.WriteLine(result);
// Output: "https://api.company.com/v2/users/abc123/orders?date=2025-12-19&status=pending"
Console.ReadKey();
}
public class User
{
public string Name { get; set; }
public int Id { get; set; }
public int Age { get; set; }
}
