网站建设与管理办法,地方文明网站建设,游戏推广平台,wordpress文章列表加广告语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串#xff0c;没有编译时类型检查或 IntelliSense 支持。 此外#xff0c; … 对于编写查询的开发者来说#xff0c;LINQ 最明显的“语言集成”部分就是查询表达式。 …语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串没有编译时类型检查或 IntelliSense 支持。 此外 … 对于编写查询的开发者来说LINQ 最明显的“语言集成”部分就是查询表达式。
通常一副扑克牌包含四种花色每种 花色包含 13 个值。 通常情况下你可能会立即考虑创建一个 Card 类然后手动填充一组 Card 对象。 相对于 通常的方式使用 LINQ 创建一副扑克牌更加简捷。 可以创建两个序列来分别表示花色和点数而非创建 Card 类。
var pairPoker Enum.GetValuesSuit().SelectMany(s Enum.GetValuesPokerValue().Select(p new PokerCard(p, s))).ToArray();var originalJson pairPoker.DumpJson();
Console.WriteLine(originalJson);
//One Half Poker
var halfIndex pairPoker.Length / 2;
var firstPairPoker pairPoker[..halfIndex];
var SecondPairPoker pairPoker[halfIndex..];//shuffle
var shufflePoker DoShuffle(firstPairPoker, SecondPairPoker).ToArray();
var shufflePokerJson shufflePoker.DumpJson();
Console.WriteLine(shufflePokerJson);
Console.WriteLine(shufflePoker pairPoker);
Console.ReadKey();IEnumerablePokerCard DoShuffle(PokerCard[] one, PokerCard[] two)
{var first one.GetEnumerator();var second two.GetEnumerator();while (first.MoveNext() second.MoveNext()){yield return (PokerCard)first.Current;yield return (PokerCard)second.Current;}
}enum Suit
{/// summary/// 红桃/// /summaryHearts,/// summary/// 方块/// /summaryDiamonds,/// summary/// 黑桃/// /summarySpades,/// summary/// 梅花/// /summaryClubs,
}enum PokerValue
{Two,Three,Four,Five,Sex,Seven,Eight,Nine,Ten,J,Q,K,A,
}record PokerCard(PokerValue Value, Suit Suit);