diff --git a/Basic.props b/Basic.props
new file mode 100644
index 00000000..131a29f2
--- /dev/null
+++ b/Basic.props
@@ -0,0 +1,36 @@
+
+
+ Trivial
+ Kingcean Tuan
+ Nanchang Jinchen Software Co., Ltd.
+ 8.0.0
+ 8.0.0.0
+ 8.0.0.0
+ Copyright (c) 2018 Kingcean Tuan.
+ MIT
+ https://github.com/nuscien/trivial
+ git
+ true
+ README.md
+ 12.0
+ True
+ ..\Trivial.snk
+
+
+
+ NETOLDVER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Chemistry/Chemistry.csproj b/Chemistry/Chemistry.csproj
deleted file mode 100644
index f329f1dd..00000000
--- a/Chemistry/Chemistry.csproj
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
- net8.0;net6.0;net48;net462;net461
- Trivial.Chemistry
- Trivial
- Trivial.Chemistry
- Trivial
- Kingcean Tuan
- Nanchang Jinchen Software Co., Ltd.
- 8.0.0
- 8.0.0.0
- 8.0.0.0
- A library with basic chemical models.
- Copyright (c) 2021 Kingcean Tuan.
- MIT
- https://github.com/nuscien/trivial/wiki/chemistry
- true
- true
- snupkg
- https://github.com/nuscien/trivial
- git
- true
- chemistry.png
- https://github.com/nuscien/trivial/raw/master/Materials/logo.png
- chemistry chemical-element periodic-table molecular
- README.md
- 12.0
- True
- ..\Trivial.snk
-
-
-
- ..\bin\Debug\
- ..\bin\$(Configuration)\$(TargetFramework)\Trivial.Chemistry.xml
-
-
-
- ..\bin\Release\
- ..\bin\$(Configuration)\$(TargetFramework)\Trivial.Chemistry.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- ChemistryResource.resx
-
-
-
-
-
- ResXFileCodeGenerator
- ChemistryResource.Designer.cs
-
-
-
-
diff --git a/Chemistry/Chemistry/ChemicalBond.cs b/Chemistry/Chemistry/ChemicalBond.cs
deleted file mode 100644
index 05e26015..00000000
--- a/Chemistry/Chemistry/ChemicalBond.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Trivial.Chemistry;
-
-///
-/// The types of chemcial bond.
-///
-public enum ChemicalBondTypes : byte
-{
- ///
- /// Ionic bond.
- ///
- Ionic = 0,
-
- ///
- /// Covalent bound.
- ///
- Covalent = 1,
-
- ///
- /// Metallic bound.
- ///
- Metallic = 2
-}
-
-///
-/// The chemical bond information.
-///
-public class ChemicalBond
-{
- ///
- /// Initializes a new instance of the ChemicalBond class.
- ///
- /// The chemical bond type.
- /// The bond numbers.
- public ChemicalBond(ChemicalBondTypes type, int numbers)
- {
- Type = type;
- Numbers = numbers;
- }
-
- ///
- /// Gets the chemical bond type.
- ///
- public ChemicalBondTypes Type { get; }
-
- ///
- /// Gets the bound numbers.
- ///
- public int Numbers { get; }
-}
diff --git a/Chemistry/Chemistry/ChemicalElement.cs b/Chemistry/Chemistry/ChemicalElement.cs
deleted file mode 100644
index 1747651a..00000000
--- a/Chemistry/Chemistry/ChemicalElement.cs
+++ /dev/null
@@ -1,825 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Security;
-using System.Text;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using System.Threading.Tasks;
-
-using Trivial.Text;
-
-namespace Trivial.Chemistry;
-
-///
-/// The model of chemical element.
-///
-[JsonConverter(typeof(ChemicalElementJsonConverter))]
-public partial class ChemicalElement : IEquatable
-{
- ///
- /// The maximum atomic number in each period.
- ///
- private readonly static int[] periodNumbers = new []{ 2, 10, 18, 36, 54, 86, 118, 168, 218, 290, 362, 460, 558, 686, 814, 976, 1138, 1338, 1538 };
-
- ///
- /// The element name.
- ///
- private readonly Func name;
-
- ///
- /// All mass information of its isotopes.
- ///
- private double[] mass;
-
- ///
- /// All isotopes.
- ///
- private List isotopes;
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element identifier.
- /// The English name.
- /// The atomic weight in dalton (unified atomic mass unit).
- /// All mass information of its isotopes.
- internal ChemicalElement(int number, string symbol, string englishName, double atomicWeight, double[] isotopicMass = null)
- {
- symbol = symbol?.Trim();
- Symbol = string.IsNullOrEmpty(symbol) ? GetSymbol(number) : symbol;
- AtomicNumber = number;
- (Period, IndexInPeriod) = GetPeriod(number);
- Group = GetGroup(Period, IndexInPeriod);
- englishName = englishName?.Trim();
- EnglishName = string.IsNullOrEmpty(englishName) ? GetName(number) : englishName;
- AtomicWeight = atomicWeight;
- HasAtomicWeight = !double.IsNaN(atomicWeight);
- mass = isotopicMass;
- Block = Group switch
- {
- 1 or 2 => "s",
- 18 => AtomicNumber == 2 ? "s" : "p",
- 13 or 14 or 15 or 16 or 17 => "p",
- 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10 => "d",
- 11 or 12 => "ds",
- _ => string.Empty
- };
- if (Group != 3 || Period < 6) return;
- var count = CountInPeriod(Period);
- var countdown = count - IndexInPeriod;
- if (countdown <= 16) return;
- Block = "f";
- if (Period < 8 || countdown <= 30) return;
- Block = "g";
- if (Period < 10 || countdown <= 48) return;
- Block = "i";
- if (Period < 12 || countdown <= 70) return;
- Block = "j";
- if (Period < 14 || countdown <= 96) return;
- Block = string.Empty;
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element symbol.
- /// The English name.
- /// The atomic weight in dalton (unified atomic mass unit).
- /// All mass information of its isotopes.
- internal ChemicalElement(int number, string symbol, string englishName, int atomicWeight, double[] isotopicMass = null)
- : this(number, symbol, englishName, double.NaN, isotopicMass)
- {
- AtomicWeight = atomicWeight;
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element symbol.
- /// The English name.
- /// The name resolver.
- /// The atomic weight in dalton (unified atomic mass unit).
- /// The optional isotopes.
- public ChemicalElement(int number, string symbol, string englishName, Func name, double atomicWeight, IEnumerable isotopes = null)
- : this(number, symbol, englishName, atomicWeight)
- {
- if (name is null) return;
- this.name = name;
- this.isotopes = isotopes?.ToList();
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element symbol.
- /// The English name.
- /// The name.
- /// The atomic weight in dalton (unified atomic mass unit).
- /// The optional isotopes.
- public ChemicalElement(int number, string symbol, string englishName, string name, double atomicWeight, IEnumerable isotopes = null)
- : this(number, symbol, englishName, atomicWeight)
- {
- name = name?.Trim();
- if (!string.IsNullOrEmpty(name)) this.name = () => name;
- this.isotopes = isotopes?.ToList();
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element symbol.
- /// The name.
- /// true if the parameter name is also an English name.
- /// The atomic weight in dalton (unified atomic mass unit).
- /// The optional isotopes.
- public ChemicalElement(int number, string symbol, string name, bool isAlsoEnglishName, double atomicWeight, IEnumerable isotopes = null)
- : this(number, symbol, isAlsoEnglishName ? name : null, name, atomicWeight, isotopes)
- {
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element identifier.
- /// The English name.
- /// The name.
- public ChemicalElement(int number, string symbol, string englishName, string name)
- : this(number, symbol, englishName, name, double.NaN)
- {
- }
-
- ///
- /// Initializes a new instance of the ChemicalElement class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The element symbol.
- /// The name.
- /// true if the parameter name is also an English name.
- public ChemicalElement(int number, string symbol, string name, bool isAlsoEnglishName)
- : this(number, symbol, isAlsoEnglishName ? name : null, name, double.NaN)
- {
- }
-
- ///
- /// The element symbol.
- ///
- public string Symbol { get; }
-
- ///
- /// The name.
- ///
- public string Name
- {
- get
- {
- var s = name?.Invoke();
- if (!string.IsNullOrEmpty(s)) return s;
- var table = periodicTable;
- if (name is null && table != null && AtomicNumber <= table.Length)
- {
- try
- {
- s = ChemistryResource.ResourceManager.GetString("Element" + AtomicNumber.ToString("000"))?.Trim();
- if (!string.IsNullOrEmpty(s)) return s;
- }
- catch (InvalidOperationException)
- {
- }
- catch (System.Resources.MissingManifestResourceException)
- {
- }
- catch (System.Resources.MissingSatelliteAssemblyException)
- {
- }
- }
-
- s = ChemistryResource.ElementX?.Trim();
- if (!string.IsNullOrEmpty(s) && s.Contains('{'))
- return s
- .Replace("{0}", AtomicNumber.ToString("g"))
- .Replace("{number}", AtomicNumber.ToString("g"))
- .Replace("{symbol}", Symbol);
- return EnglishName ?? Symbol ?? ChemistryResource.Element;
- }
- }
-
- ///
- /// Gets the element name in English accepted by IUPAC.
- ///
- public string EnglishName { get; }
-
- ///
- /// Gets the atomic number (or proton number, Atomzahl, symbol Z) of the chemical element.
- /// It is the one-based number of protons found in the nucleus of every atom of that element.
- ///
- public int AtomicNumber { get; }
-
- ///
- /// Gets the period which is a one-based index of horizontal row in the periodic table.
- ///
- public int Period { get; }
-
- ///
- /// Gets a zero-based index of the element in the period.
- ///
- public int IndexInPeriod { get; }
-
- ///
- /// Gets the IUPAC group (or family) which is a one-based index of vertical column in the periodic table.
- /// -1 for others (N/A) which only appears in Period 6 and later.
- ///
- public int Group { get; }
-
- ///
- /// Gets the atomic weight in dalton (unified atomic mass unit).
- ///
- public double AtomicWeight { get; }
-
- ///
- /// Gets a value indicating whether has atomic weight information.
- ///
- public bool HasAtomicWeight { get; }
-
- ///
- /// Gets block which is a set of elements unified by the orbitals their valence electrons or vacancies lie in.
- ///
- public string Block { get; }
-
- ///
- /// Gets a value indicating whether it is alkali metal.
- ///
- public bool IsAlkaliMetal => Period > 1 && Group == 1;
-
- ///
- /// Gets a value indicating whether it is alkaline-earth metal.
- ///
- public bool IsAlkalineEarthMetal => Group == 2;
-
- ///
- /// Gets a value indicating whether it is in VIII group.
- ///
- public bool IsInVIII => Group > 7 && Group < 11;
-
- ///
- /// Gets a value indicating whether it is transition element.
- ///
- public bool IsTransition => Group > 2 && Group < 13;
-
- ///
- /// Gets a value indicating whether it is metallic element.
- ///
- public bool IsMetal
- {
- get
- {
- if (Period < 2 || Group > 16) return false;
- if (Group < 13 || Period > 5) return true;
- return Period + 10 >= Group;
- }
- }
-
- ///
- /// Gets a value indicating whether it is non-metallic element.
- ///
- public bool IsNonMetallic => !IsMetal;
-
- ///
- /// Gets a value indicating whether it is in boron group.
- ///
- public bool IsInBoronGroup => Group == 13;
-
- ///
- /// Gets a value indicating whether it is in carbon group.
- ///
- public bool IsInCarbonGroup => Group == 14;
-
- ///
- /// Gets a value indicating whether it is in nitrogen group.
- ///
- public bool IsInNitrogenGroup => Group == 15;
-
- ///
- /// Gets a value indicating whether it is chalcogen.
- ///
- public bool IsChalcogen => Group == 16;
-
- ///
- /// Gets a value indicating whether it is halogen.
- ///
- public bool IsHalogen => Group == 17;
-
- ///
- /// Gets a value indicating whether it is one of noble gases.
- ///
- public bool IsNoble => Group == 18;
-
- ///
- /// Gets a value indicating whether this element is valid.
- ///
- public bool IsValid()
- => Period > 0 && !string.IsNullOrEmpty(Symbol);
-
- ///
- /// Gets all isotopes registered.
- ///
- /// The isotope collection.
- public IReadOnlyList Isotopes()
- {
- if (isotopes is null)
- {
- var col = mass?.Select(ele => new Isotope(this, (int)Math.Round(ele), ele))?.ToList() ?? new();
- isotopes ??= col;
- mass = null;
- }
-
- return isotopes.AsReadOnly();
- }
-
- ///
- /// Gets an isotope.
- ///
- /// The atomic mass number (total protons and neutrons).
- /// An isotope of this element with the specific numbers of neutrons.
- public Isotope Isotope(int atomicMassNumber)
- {
- var col = Isotopes();
- return col?.FirstOrDefault(ele => ele.AtomicMassNumber == atomicMassNumber)
- ?? new(this, atomicMassNumber, AtomicNumber < 160 && Math.Abs(atomicMassNumber - AtomicWeight) < 0.4 ? AtomicWeight : double.NaN);
- }
-
- ///
- /// Gets an isotope.
- ///
- /// The atomic mass number (total protons and neutrons).
- /// The atomic weight in dalton (unified atomic mass unit).
- /// An isotope of this element with the specific numbers of neutrons.
- public Isotope Isotope(int atomicMassNumber, double atomicWeight)
- {
- var isotope = Isotopes()?.FirstOrDefault(ele => ele.AtomicMassNumber == atomicMassNumber);
- if (isotope != null && Math.Abs(isotope.AtomicWeight - atomicWeight) > 0.000000001) isotope = null;
- return isotope ?? new(this, atomicMassNumber, atomicWeight);
- }
-
- ///
- /// Adds an isotope.
- ///
- /// The atomic mass number (total protons and neutrons).
- /// The atomic weight in dalton (unified atomic mass unit).
- /// An isotope of this element with the specific numbers of neutrons.
- public Isotope AddIsotope(int atomicMassNumber, double atomicWeight)
- {
- var isotope = Isotopes()?.FirstOrDefault(ele => ele.AtomicMassNumber == atomicMassNumber);
- if (isotope != null && Math.Abs(isotope.AtomicWeight - atomicWeight) > 0.000000001) isotope = null;
- if (isotope is null)
- {
- isotope = new(this, atomicMassNumber, atomicWeight);
- isotopes.Add(isotope);
- }
-
- return isotope;
- }
-
- ///
- /// Removes an isotope.
- ///
- /// The isotope to remove.
- /// true if exists; otherwise, false.
- public bool RemoveIsotope(Isotope isotope)
- {
- if (!isotopes.Remove(isotope)) return false;
- if (isotopes.Remove(isotope)) isotopes.Remove(isotope);
- return true;
- }
-
- ///
- /// Removes all isotopes registered.
- ///
- public void ClearIsotopes()
- {
- isotopes.Clear();
- }
-
- ///
- /// Writes this instance to the specified writer as a JSON value.
- ///
- /// The writer to which to write this instance.
- public void WriteTo(Utf8JsonWriter writer)
- {
- var json = (JsonObjectNode)this;
- json.WriteTo(writer);
- }
-
- ///
- /// Writes to file.
- ///
- /// The file to write.
- /// The indent style.
- /// IO exception.
- /// Write failed because of security exception.
- /// The file path was null.
- /// The file was not supported.
- /// Write failed because of unauthorized access exception.
- public void WriteTo(FileInfo file, IndentStyles style = IndentStyles.Minified)
- {
- var json = (JsonObjectNode)this;
- json.WriteTo(file, style);
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public bool Equals(ChemicalElement other)
- {
- if (other is null) return false;
- if (ReferenceEquals(this, other)) return true;
- return AtomicNumber == other.AtomicNumber
- && Symbol == other.Symbol;
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public bool Equals(JsonObjectNode other)
- {
- if (other is null) return false;
- return AtomicNumber == other.TryGetInt32Value("number")
- && Symbol == other.TryGetStringValue("symbol");
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public override bool Equals(object other)
- {
- if (other is null) return false;
- if (other is ChemicalElement element) return Equals(element);
- if (other is JsonObjectNode json) return Equals(json);
- return false;
- }
-
- ///
- /// Compares two chemical elements to indicate if they are same.
- /// leftValue == rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator ==(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return true;
- if (leftValue is null || rightValue is null) return false;
- return leftValue.Equals(rightValue);
- }
-
- ///
- /// Compares two chemical elements to indicate if they are different.
- /// leftValue != rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are different; otherwise, false.
- public static bool operator !=(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return false;
- if (leftValue is null || rightValue is null) return true;
- return !leftValue.Equals(rightValue);
- }
-
- ///
- /// Compares a chemical elements is less than another one.
- /// leftValue < rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator <(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue) || rightValue is null) return false;
- if (leftValue is null) return true;
- return leftValue.AtomicNumber < rightValue.AtomicNumber;
- }
-
- ///
- /// Compares a chemical elements is greater than another one.
- /// leftValue > rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator >(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue) || leftValue is null) return false;
- if (rightValue is null) return true;
- return leftValue.AtomicNumber > rightValue.AtomicNumber;
- }
-
- ///
- /// Compares a chemical elements is less than or equals to another one.
- /// leftValue <= rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator <=(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue) || leftValue is null) return true;
- if (rightValue is null) return false;
- return leftValue.AtomicNumber <= rightValue.AtomicNumber;
- }
-
- ///
- /// Compares a chemical elements is greater than or equals to another one.
- /// leftValue <= rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator >=(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue) || rightValue is null) return true;
- if (leftValue is null) return false;
- return leftValue.AtomicNumber >= rightValue.AtomicNumber;
- }
-
- ///
- /// Peturns a string that represents the current chemical element information.
- ///
- /// A string that represents the current chemical element information.
- public override string ToString()
- {
- var sb = new StringBuilder();
- sb.Append(Name);
- sb.Append(" (");
- if (AtomicNumber < 1)
- sb.Append('?');
- else
- sb.Append(AtomicNumber);
-
- if (!Name.Equals(Symbol, StringComparison.OrdinalIgnoreCase)
- && !"?".Equals(Symbol, StringComparison.OrdinalIgnoreCase))
- {
- sb.Append(' ');
- sb.Append(Symbol);
- }
-
- sb.Append(')');
- return sb.ToString();
- }
-
- ///
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The chemical element to convert.
- public static explicit operator JsonObjectNode(ChemicalElement element)
- {
- if (element is null || element.AtomicNumber < 1) return null;
- var json = new JsonObjectNode
- {
- { "number", element.AtomicNumber },
- { "symbol", element.Symbol },
- { "period", element.Period },
- { "name", element.Name }
- };
- if (element.Group > 0)
- json.SetValue("group", element.Group);
- if (!double.IsNaN(element.AtomicWeight))
- json["weight"] = element.HasAtomicWeight ? new JsonDoubleNode(element.AtomicWeight) : new JsonIntegerNode(element.AtomicWeight);
- if (!element.EnglishName.Equals(element.Name))
- json.SetValue("name_en", element.EnglishName);
- if (element.isotopes != null && element.isotopes.Count > 0)
- {
- var arr = new JsonArrayNode();
- foreach (var isotope in element.isotopes)
- {
- var json2 = new JsonObjectNode
- {
- { "symbol", isotope.ToString() },
- { "neutrons", isotope.Neutrons },
- { "mass", isotope.AtomicMassNumber }
- };
- if (!double.IsNaN(isotope.AtomicWeight)) json2.SetValue("weight", isotope.AtomicWeight);
- arr.Add(json2);
- }
-
- json.SetValue("isotopes", arr);
- }
-
- return json;
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The chemical element to convert.
- public static explicit operator JsonDocument(ChemicalElement element)
- {
- if (element is null || element.AtomicNumber < 1) return null;
- return (JsonDocument)(JsonObjectNode)element;
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The chemical element to convert.
- public static explicit operator System.Text.Json.Nodes.JsonObject(ChemicalElement element)
- {
- if (element is null || element.AtomicNumber < 1) return null;
- return (System.Text.Json.Nodes.JsonObject)(JsonObjectNode)element;
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The chemical element to convert.
- public static explicit operator JsonStringNode(ChemicalElement element)
- {
- return element is null ? null : new JsonStringNode(element.Symbol);
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The chemical element to convert.
- public static explicit operator JsonIntegerNode(ChemicalElement element)
- {
- return element is null ? null : new JsonIntegerNode(element.AtomicNumber);
- }
-
- ///
- /// Pluses two chemical elements.
- ///
- /// The left value for addition operator.
- /// The right value for addition operator.
- /// A result after addition.
- public static MolecularFormula operator +(ChemicalElement leftValue, ChemicalElement rightValue)
- {
- var isLeftEmpty = string.IsNullOrEmpty(leftValue?.Symbol);
- var isRightEmpty = string.IsNullOrEmpty(rightValue?.Symbol);
- if (isLeftEmpty && isRightEmpty) return null;
- if (isLeftEmpty) return new MolecularFormula(rightValue);
- if (isRightEmpty) return new MolecularFormula(leftValue);
- return new MolecularFormula(leftValue, 1, rightValue, 1);
- }
-
- ///
- /// Multiplies a chemical element and an integer number.
- ///
- /// The left value for multiple operator.
- /// The right value for multiple operator.
- /// A result after multiple.
- public static MolecularFormula operator *(ChemicalElement leftValue, int rightValue)
- {
- if (string.IsNullOrEmpty(leftValue?.Symbol) || rightValue < 1) return null;
- return new MolecularFormula(leftValue, rightValue);
- }
-
- ///
- /// Multiplies a chemical element and an integer number.
- ///
- /// The left value for multiple operator.
- /// The right value for multiple operator.
- /// A result after multiple.
- public static MolecularFormula operator *(int leftValue, ChemicalElement rightValue)
- {
- if (string.IsNullOrEmpty(rightValue?.Symbol) || leftValue < 1) return null;
- return new MolecularFormula(rightValue, leftValue);
- }
-
- ///
- /// Gets the atomic number of the first element in the specific period.
- ///
- /// The period.
- /// The atomic number of the first element in the specific period; or -1, if the period is invalid.
- public static int FirstAtomicNumberInPeriod(int period)
- {
- if (period < 1) return -1;
- var number = 1;
- var count = 2;
- var diff = 2;
- for (var i = 1; i < period; i++)
- {
- number += count;
- diff += 4;
- count += diff;
- i++;
- if (i >= period) break;
- number += count;
- }
-
- return number;
- }
-
- ///
- /// Gets the atomic number of the first element in the specific period.
- ///
- /// The period.
- /// The atomic number of the first element in the specific period; or -1, if the period is invalid.
- public static int LastAtomicNumberInPeriod(int period)
- {
- if (period < 1) return -1;
- var number = 2;
- var count = 2;
- var diff = 2;
- for (var i = 1; i < period; i++)
- {
- diff += 4;
- count += diff;
- i++;
- number += count;
- if (i >= period) break;
- number += count;
- }
-
- return number;
- }
-
- ///
- /// Gets the element count in a specific period.
- ///
- /// The period which is a one-based index of horizontal row in the periodic table.
- /// The count in this period; or -1, if the period is out of range.
- public static int CountInPeriod(int period)
- {
- if (period < 1) return -1;
- var count = 2;
- var diff = 2;
- for (var i = 1; i < period; i++)
- {
- diff += 4;
- count += diff;
- i++;
- if (i >= period) break;
- }
-
- return count > 0 ? count : -1;
- }
-
- ///
- /// Gets the group.
- ///
- /// The period which is a one-based index of horizontal row in the periodic table.
- /// Gets a zero-based index of the element in the period.
- /// The count in this period; or -1, if not available.
- private static int GetGroup(int period, int index)
- {
- if (period < 1 || index < 0) return -1;
- if (index == 0) return 1;
- if (period == 1) return 18;
- if (index == 1) return 2;
- if (period < 4) return index + 11;
- if (period < 6) return index + 1;
- var i = 18 - CountInPeriod(period) + index + 1;
- return i < 3 ? 3 : i;
- }
-
- ///
- /// Gets the period which is a one-based index of horizontal row in the periodic table.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element.
- /// The period, and the index in this period.
- private static (int, int) GetPeriod(int number)
- {
- if (number < 1) return (-1, -1);
- if (number <= 2) return (1, number - 1);
- for (var i = 1; i < periodNumbers.Length; i++)
- {
- if (number > periodNumbers[i]) continue;
- var j = number - periodNumbers[i - 1] - 1;
- return (i + 1, j);
- }
-
- var diff = 42;
- var count = 242;
- var max = 1780;
- for (var i = 20; max > 0; i++)
- {
- if (number <= max) return (i, number - max + count - 1);
- max += count;
- if (number <= max) return (i, number - max + count - 1);
- count += diff;
- max += count;
- }
-
- return (-1, -1);
- }
-}
diff --git a/Chemistry/Chemistry/ChemicalElementJsonConverter.cs b/Chemistry/Chemistry/ChemicalElementJsonConverter.cs
deleted file mode 100644
index c94a7c63..00000000
--- a/Chemistry/Chemistry/ChemicalElementJsonConverter.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Globalization;
-using System.Linq;
-using System.Text;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-using Trivial.Text;
-
-namespace Trivial.Chemistry;
-
-///
-/// Chemical element JSON converter.
-///
-sealed class ChemicalElementJsonConverter : JsonConverter
-{
- ///
- public override ChemicalElement Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
- {
- if (reader.TokenType == JsonTokenType.Null)
- return null;
- try
- {
- if (reader.TokenType == JsonTokenType.Number)
- return ChemicalElement.Get(reader.GetInt32());
- }
- catch (FormatException ex)
- {
- throw new JsonException("Expect a valid chemical element symbol or the atomic numbers.", ex);
- }
-
- if (reader.TokenType == JsonTokenType.String)
- return ChemicalElement.Get(reader.GetString());
- if (reader.TokenType != JsonTokenType.StartObject)
- throw new JsonException("The format is not correct. Expect a JSON object, a number or a string for the chemical element.", new FormatException("The value should be a JSON object token format."));
- var obj = new JsonObjectNode();
- obj.SetRange(ref reader);
- var z = obj.TryGetInt32Value("number") ?? obj.TryGetInt32Value("z");
- var s = obj.TryGetStringValue("symbol")?.Trim();
- var n = obj.TryGetStringValue("name_en")?.Trim() ?? obj.TryGetStringValue("name")?.Trim();
- var w = obj.TryGetDoubleValue("weight");
- ChemicalElement ele = null;
- if (z.HasValue && z != 0)
- {
- if (z.Value < 1) return null;
- ele = ChemicalElement.Get(z.Value);
- }
- else if (!string.IsNullOrEmpty(s))
- {
- ele = ChemicalElement.Get(s);
- }
- else if (!string.IsNullOrEmpty(n))
- {
- ele = ChemicalElement.Where(ele => n.Equals(ele.EnglishName, StringComparison.Ordinal)).FirstOrDefault();
- if (ele is null && n.Length < 4) ele = ChemicalElement.Get(n);
- }
- else
- {
- return null;
- }
-
- if (ele != null
- && (!z.HasValue || ele.AtomicNumber == z.Value)
- && (string.IsNullOrEmpty(s) || s.Equals(ele.Symbol, StringComparison.OrdinalIgnoreCase))
- && (double.IsNaN(w) || (ele.HasAtomicWeight && !double.IsNaN(w) && Math.Abs(ele.AtomicWeight - w) < 0.000000001)))
- return ele;
-
- if (!z.HasValue || z.Value < 1 || string.IsNullOrEmpty(s))
- return null;
- return string.IsNullOrEmpty(n)
- ? new ChemicalElement(z.Value, s, null, w)
- : new ChemicalElement(z.Value, s, n, true, w);
- }
-
- ///
- public override void Write(Utf8JsonWriter writer, ChemicalElement value, JsonSerializerOptions options)
- {
- value.WriteTo(writer);
- }
-}
diff --git a/Chemistry/Chemistry/ChemicalElements.cs b/Chemistry/Chemistry/ChemicalElements.cs
deleted file mode 100644
index 3ca00caf..00000000
--- a/Chemistry/Chemistry/ChemicalElements.cs
+++ /dev/null
@@ -1,446 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Trivial.Text;
-
-namespace Trivial.Chemistry;
-
-///
-/// The periodic table of chemical element.
-///
-public partial class ChemicalElement
-{
- ///
- /// Periodic table initialization locker.
- ///
- private readonly static object locker = new();
-
- ///
- /// The latin numbers.
- ///
- private readonly static string[] latinNumbers = new[]
- {
- "Nil", "Un", "Bi", "Tri", "Quad", "Pent", "Hex", "Sept", "Oct", "Enn"
- };
-
- ///
- /// The periodic table.
- ///
- private static ChemicalElement[] periodicTable;
-
- ///
- /// The periodic table by symbol indexing.
- ///
- private static Dictionary symbols;
-
- ///
- /// Other elements.
- ///
- private readonly static ConcurrentDictionary others = new();
-
- ///
- /// Gets a chemical element.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The chemical element; or null, if not found.
- public static ChemicalElement Get(int number)
- {
- Init();
- if (number < 1) return null;
- if (number <= periodicTable.Length) return periodicTable[number - 1];
- if (others.TryGetValue(number, out var r)) return r;
- r = new(number, null, null, double.NaN);
- var max = ChemistryExtensions.MaxAtomicNumber;
- if (r.Period > 0 && (max < 0 || number <= max))
- {
- others.TryAdd(number, r);
- if (others.TryGetValue(number, out var r2)) return r2;
- }
-
- return r;
- }
-
- ///
- /// Gets a chemical element.
- ///
- /// The element symbol.
- /// The chemical element; or null, if not found.
- public static ChemicalElement Get(string symbol)
- {
- Init();
- symbol = symbol?.Trim();
- if (string.IsNullOrEmpty(symbol)) return null;
- if (symbols.TryGetValue(symbol, out var r)) return r;
- foreach (var item in others.Values)
- {
- if (symbol.Equals(item?.Symbol, StringComparison.OrdinalIgnoreCase))
- return item;
- }
-
- if (int.TryParse(symbol, out var i) && i > 0) return Get(i);
- if (symbol.Length < 3) return null;
- i = symbol[0] switch
- {
- 'U' => 1,
- 'B' => 2,
- 'T' => 3,
- 'Q' => 4,
- 'P' => 5,
- 'H' => 6,
- 'S' => 7,
- 'O' => 8,
- 'E' => 9,
- _ => -1
- };
- if (i < 0) return null;
- for (var j = 1; j < symbol.Length; j++)
- {
- i *= 10;
- var k = symbol[j] switch
- {
- 'n' => 0,
- 'u' => 1,
- 'b' => 2,
- 't' => 3,
- 'q' => 4,
- 'p' => 5,
- 'h' => 6,
- 's' => 7,
- 'o' => 8,
- 'e' => 9,
- _ => -1
- };
- if (k < 0) return null;
- i += k;
- }
-
- return Get(i);
- }
-
- ///
- /// Gets a value indicating whether the symbol is valid.
- ///
- /// The element symbol.
- /// true if valid; otherwise, false.
- public static bool IsValid(string symbol)
- {
- return Get(symbol) != null;
- }
-
- ///
- /// Registers a chemical element into periodic table.
- ///
- /// The chemical element to register.
- public static void Register(ChemicalElement element)
- {
- if (string.IsNullOrWhiteSpace(element?.Symbol)) return;
- Init();
- var number = element.AtomicNumber;
- if (number < 1) return;
- lock (locker)
- {
- if (number < periodicTable.Length) periodicTable[number - 1] = element;
- else others[number] = element;
- symbols[element.Symbol.Trim()] = element;
- }
- }
-
- ///
- /// Registers a chemical element into periodic table.
- ///
- /// The chemical element to register.
- public static void Register(IEnumerable elements)
- {
- if (elements is null) return;
- Init();
- lock (locker)
- {
- foreach (var element in elements)
- {
- if (string.IsNullOrWhiteSpace(element?.Symbol)) continue;
- var number = element.AtomicNumber;
- if (number < 1) continue;
- if (number < periodicTable.Length) periodicTable[number - 1] = element;
- else others[number] = element;
- symbols[element.Symbol.Trim()] = element;
- }
- }
- }
-
- ///
- /// Registers all chemical elements 1 - number.
- ///
- /// The atomic number to register.
- public static void Register(int number)
- {
- Init();
- Get(number);
- if (number > 10000) number = 10000;
- for (var i = periodicTable.Length + 1; i < number; i++)
- {
- Get(i);
- }
- }
-
- ///
- /// Filters the periodic table based on a predicate.
- ///
- /// A function to test each element for a condition.
- /// An enumerable instance that contains elements from the periodic table that satisfy the condition.
- public static IEnumerable Where(Func predicate)
- {
- Init();
- if (predicate is null) predicate = ele => true;
- foreach (var item in periodicTable.Where(predicate))
- {
- yield return item;
- }
-
- foreach (var item in others.Values.Where(predicate))
- {
- yield return item;
- }
- }
-
- ///
- /// Gets a range.
- ///
- /// The start atomic numbers.
- /// The count to get.
- /// A specific range of chemical element.
- public static IEnumerable Range(int start, int count)
- {
- Init();
- var end = start + count;
- if (end < 1 || end < start) yield break;
- if (start <= periodicTable.Length)
- {
- var col = start > 1 ? periodicTable.Skip(start - 1) : periodicTable;
- if (end > periodicTable.Length)
- {
- foreach (var item in col)
- {
- yield return item;
- }
- }
- else
- {
- foreach (var item in col)
- {
- if (item.AtomicNumber > end) break;
- yield return item;
- }
-
- yield break;
- }
- }
-
- foreach (var item in others.Values)
- {
- if (item.AtomicNumber > end) break;
- yield return item;
- }
- }
-
- ///
- /// Filters all elements in the specific period.
- ///
- /// The period.
- /// A collection after filter.
- public static IEnumerable PeriodElements(int period)
- => periodicTable.Where(ele => ele.Period == period);
-
- internal static bool Has(int number)
- {
- if (number < 1) return false;
- Init();
- if (number <= periodicTable.Length) return true;
- return others.ContainsKey(number);
- }
-
- internal static IEnumerable GetExisted()
- {
- Init();
- foreach (var item in periodicTable)
- {
- yield return item;
- }
- }
-
- internal static IEnumerable GetOthers()
- {
- Init();
- return others.Values;
- }
-
- ///
- /// Gets the symbol of unidentified element.
- ///
- /// The atomic number.
- /// The symbol.
- private static string GetSymbol(int number)
- {
- if (number < 1) return "?";
- var s = number.ToString("g");
- for (var i = 0; i < 10; i++)
- {
- s = s.Replace(i.ToString("g"), latinNumbers[i][0].ToString());
- }
-
- return s.ToLowerInvariant().ToSpecificCaseInvariant(Cases.Capitalize);
- }
-
- ///
- /// Gets the name in English of unidentified element.
- ///
- /// The atomic number.
- /// The name.
- private static string GetName(int number)
- {
- var s = number.ToString("g");
- for (var i = 0; i < 10; i++)
- {
- s = s.Replace(i.ToString("g"), latinNumbers[i]);
- }
-
- return s.ToLowerInvariant().ToSpecificCaseInvariant(Cases.Capitalize) + (s.EndsWith("i") ? "um" : "ium");
- }
-
- ///
- /// Initializes the periodic table.
- ///
- private static void Init()
- {
- if (periodicTable != null) return;
- lock (locker)
- {
- if (periodicTable != null) return;
- periodicTable = new ChemicalElement[]
- {
- new(1, "H", "Hydrogen", 1.008, new [] { 1.00782503223, 2.01410177812, 3.0160492779, 4.02643, 5.035311, 6.04496, 7.0527 }),
- new(2, "He", "Helium", 4.002602, new [] { 3.0160293201, 4.00260325413, 5.012057, 6.018885891, 7.0279907, 8.03393439, 9.043946, 10.05279 }),
- new(3, "Li", "Lithium", 6.94, new [] { 3.0308, 4.02719, 5.012538, 6.0151228874, 7.0160034366, 8.022486246, 9.02679019, 10.035483, 11.04372358, 12.052517, 13.06263 }),
- new(4, "Be", "Beryllium", 9.0121831, new [] { 5.0399, 6.0197264, 7.016928717, 8.005305102, 9.012183065, 10.013534695, 11.02166108, 12.0269221, 13.036135, 14.04289, 15.05342, 16.06167 }),
- new(5, "B", "Boron", 10.81, new [] { 6.0508, 7.029712, 8.0246073, 9.01332965, 10.01293695, 11.00930536, 12.0143527, 13.0177802, 14.025404, 15.031088, 16.039842, 17.04699, 18.05566, 19.0631, 20.07207, 21.08129 }),
- new(6, "C", "Carbon", 12.011, new [] { 8.037643, 9.0310372, 10.01685331, 11.0114336, 12, 13.00335483507, 14.0032419884, 15.01059926, 16.0147013, 17.022577, 18.026751, 19.0348, 20.04032, 21.049, 22.05753, 23.0689 }),
- new(7, "N", "Nitrogen", 14.007, new [] { 10.04165, 11.026091, 12.0186132, 13.00573861, 14.00307400443, 15.00010889888, 16.0061019, 17.008449, 18.014078, 19.017022, 20.023366, 21.02711, 22.03439, 23.04114, 24.05039, 25.0601 }),
- new(8, "O", "Oxygen", 15.999, new [] { 12.034262, 13.024815, 14.00859636, 15.00306562, 15.99491461957, 16.9991317565, 17.99915961286, 19.003578, 20.00407535, 21.008655, 22.009966, 23.015696, 24.01986, 25.02936, 26.03729, 27.04772, 28.05591 }),
- new(9, "F", "Fluorine", 18.998403163, new [] { 14.034315, 15.018043, 16.0114657, 17.00209524, 18.00093733, 18.99840316273, 19.999981252, 20.9999489, 22.002999, 23.003557, 24.008115, 25.012199, 26.020038, 27.02644, 28.03534, 29.04254, 30.05165, 31.05971 }),
- new(10, "Ne", "Neon", 20.1797, new [] { 16.02575, 17.01771396, 18.0057087, 19.00188091, 19.9924401762, 20.993846685, 21.991385114, 22.99446691, 23.99361065, 24.997789, 26.000515, 27.007553, 28.01212, 29.01975, 30.02473, 31.0331, 32.03972, 33.04938, 34.05673 }),
- new(11, "Na", "Sodium", 22.98976928, new [] { 18.02688, 19.01388, 20.0073544, 20.99765469, 21.99443741, 22.989769282, 23.99096295, 24.989954, 25.9926346, 26.9940765, 27.998939, 29.0028771, 30.0090979, 31.013163, 32.02019, 33.02573, 34.03359, 35.04062, 36.04929, 37.05705 }),
- new(12, "Mg", "Magnesium", 24.305, new [] { 19.034169, 20.01885, 21.011716, 21.99957065, 22.99412421, 23.985041697, 24.985836976, 25.982592968, 26.984340624, 27.9838767, 28.988617, 29.9904629, 30.996648, 31.9991102, 33.0053271, 34.008935, 35.01679, 36.02188, 37.03037, 38.03658, 39.04538, 40.05218 }),
- new(13, "Al", "Aluminium", 26.9815384, new [] { 21.02897, 22.01954, 23.00724435, 23.9999489, 24.9904281, 25.986891904, 26.98153853, 27.98191021, 28.9804565, 29.98296, 30.983945, 31.988085, 32.990909, 33.996705, 34.999764, 36.00639, 37.01053, 38.0174, 39.02254, 40.03003, 41.03638, 42.04384, 43.05147 }),
- new(14, "Si", "Silicon", 28.085, new [] { 22.03579, 23.02544, 24.011535, 25.004109, 25.99233384, 26.98670481, 27.97692653465, 28.9764946649, 29.973770136, 30.975363194, 31.97415154, 32.97797696, 33.978576, 34.984583, 35.986695, 36.992921, 37.995523, 39.002491, 40.00583, 41.01301, 42.01778, 43.0248, 44.03061, 45.03995 }),
- new(15, "P", "Phosphorus", 30.973761998, new [] { 24.03577, 25.02119, 26.01178, 26.999224, 27.9923266, 28.98180079, 29.97831375, 30.97376199842, 31.973907643, 32.9717257, 33.97364589, 34.9733141, 35.97826, 36.979607, 37.984252, 38.986227, 39.99133, 40.994654, 42.00108, 43.00502, 44.01121, 45.01645, 46.02446, 47.03139 }),
- new(16, "S", "Sulfur", 32.06, new [] { 26.02907, 27.01828, 28.00437, 28.996611, 29.98490703, 30.97955701, 31.9720711744, 32.9714589098, 33.967867004, 34.96903231, 35.96708071, 36.97112551, 37.9711633, 38.975134, 39.9754826, 40.9795935, 41.9810651, 42.9869076, 43.9901188, 44.99572, 46.00004, 47.00795, 48.0137, 49.02276 }),
- new(17, "Cl", "Chlorine", 35.45, new [] { 28.02954, 29.01478, 30.00477, 30.992414, 31.98568464, 32.97745199, 33.973762485, 34.968852682, 35.968306809, 36.965902602, 37.96801044, 38.9680082, 39.970415, 40.970685, 41.97325, 42.97389, 43.97787, 44.98029, 45.98517, 46.98916, 47.99564, 49.00123, 50.00905, 51.01554 }),
- new(18, "Ar", "Argon", 39.95, new [] { 30.02307, 31.01212, 31.9976378, 32.98992555, 33.98027009, 34.97525759, 35.967545105, 36.96677633, 37.96273211, 38.964313, 39.9623831237, 40.96450057, 41.9630457, 42.9656361, 43.9649238, 44.96803973, 45.968083, 46.972935, 47.97591, 48.9819, 49.98613, 50.9937, 51.99896, 53.00729 }),
- new(19, "K", "Potassium", 39.0983, new [] { 32.02265, 33.00756, 33.99869, 34.98800541, 35.98130201, 36.97337589, 37.96908112, 38.9637064864, 39.963998166, 40.9618252579, 41.96240231, 42.9607347, 43.96158699, 44.96069149, 45.96198159, 46.9616616, 47.96534119, 48.96821075, 49.97238, 50.975828, 51.98224, 52.98746, 53.99463, 55.00076, 56.00851 }),
- new(20, "Ca", "Calcium", 40.078, new [] { 34.01487, 35.00514, 35.993074, 36.98589785, 37.97631922, 38.97071081, 39.962590863, 40.96227792, 41.95861783, 42.95876644, 43.95548156, 44.95618635, 45.953689, 46.9545424, 47.95252276, 48.95566274, 49.9574992, 50.960989, 51.963217, 52.96945, 53.9734, 54.9803, 55.98508, 56.99262, 57.99794 }),
- new(21, "Sc", "Scandium", 44.955908, new [] { 36.01648, 37.00374, 37.99512, 38.984785, 39.9779673, 40.969251105, 41.96551653, 42.9611505, 43.9594029, 44.95590828, 45.95516826, 46.9524037, 47.9522236, 48.9500146, 49.952176, 50.953592, 51.95688, 52.95909, 53.96393, 54.96782, 55.97345, 56.97777, 57.98403, 58.98894, 59.99565, 61.001 }),
- new(22, "Ti", "Titanium", 47.867, new [] { 38.01145, 39.00236, 39.9905, 40.983148, 41.97304903, 42.9685225, 43.95968995, 44.95812198, 45.95262772, 46.95175879, 47.94794198, 48.94786568, 49.94478689, 50.94661065, 51.946893, 52.94973, 53.95105, 54.95527, 55.95791, 56.96364, 57.9666, 58.97247, 59.97603, 60.98245, 61.98651, 62.99375 }),
- new(23, "V", "Vanadium", 50.9415, new [] { 40.01276, 41.00021, 41.99182, 42.980766, 43.97411, 44.9657748, 45.96019878, 46.95490491, 47.9522522, 48.9485118, 49.94715601, 50.94395704, 51.94477301, 52.9443367, 53.946439, 54.94724, 55.95048, 56.95252, 57.95672, 58.95939, 59.96431, 60.96725, 61.97265, 62.97639, 63.98264, 64.9875, 65.99398 }),
- new(24, "Cr", "Chromium", 51.9961, new [] { 42.0067, 42.99753, 43.98536, 44.97905, 45.968359, 46.9628974, 47.9540291, 48.9513333, 49.94604183, 50.94476502, 51.94050623, 52.94064815, 53.93887916, 54.94083843, 55.9406531, 56.943613, 57.94435, 58.94859, 59.95008, 60.95442, 61.9561, 62.96165, 63.96408, 64.96996, 65.97366, 66.98016, 67.98403 }),
- new(25, "Mn", "Manganese", 54.938043, new [] { 44.00715, 44.99449, 45.98609, 46.975775, 47.96852, 48.959595, 49.95423778, 50.94820847, 51.9455639, 52.94128889, 53.9403576, 54.93804391, 55.93890369, 56.9382861, 57.9400666, 58.9403911, 59.9431366, 60.9444525, 61.94795, 62.9496647, 63.9538494, 64.9560198, 65.960547, 66.96424, 67.96962, 68.97366, 69.97937, 70.98368 }),
- new(26, "Fe", "Iron", 55.845, new [] { 45.01442, 46.00063, 46.99185, 47.98023, 48.973429, 49.962975, 50.956841, 51.9481131, 52.9453064, 53.93960899, 54.93829199, 55.93493633, 56.93539284, 57.93327443, 58.93487434, 59.9340711, 60.9367462, 61.9367918, 62.9402727, 63.9409878, 64.9450115, 65.94625, 66.95054, 67.95295, 68.95807, 69.96102, 70.96672, 71.96983, 72.97572, 73.97935 }),
- new(27, "Co", "Cobalt", 58.933194, new [] { 47.01057, 48.00093, 48.98891, 49.98091, 50.970647, 51.96351, 52.9542041, 53.94845987, 54.9419972, 55.9398388, 56.93629057, 57.9357521, 58.93319429, 59.9338163, 60.93247662, 61.934059, 62.9336, 63.935811, 64.9364621, 65.939443, 66.9406096, 67.94426, 68.94614, 69.94963, 70.95237, 71.95729, 72.96039, 73.96515, 74.96876, 75.97413 }),
- new(28, "Ni", "Nickel", 58.6934, new [] { 48.01769, 49.0077, 49.99474, 50.98611, 51.9748, 52.96819, 53.957892, 54.95133063, 55.94212855, 56.93979218, 57.93534241, 58.9343462, 59.93078588, 60.93105557, 61.92834537, 62.92966963, 63.92796682, 64.93008517, 65.9291393, 66.9315694, 67.9318688, 68.9356103, 69.9364313, 70.940519, 71.9417859, 72.9462067, 73.94798, 74.9525, 75.95533, 76.96055, 77.96336, 78.97025 }),
- new(29, "Cu", "Copper", 63.546, new [] { 51.99671, 52.98459, 53.97666, 54.96604, 55.95895, 56.9492125, 57.94453305, 58.93949748, 59.9373645, 60.9334576, 61.93259541, 62.92959772, 63.92976434, 64.9277897, 65.92886903, 66.9277303, 67.9296109, 68.9294293, 69.9323921, 70.9326768, 71.9358203, 72.9366744, 73.9398749, 74.9415226, 75.945275, 76.94792, 77.95223, 78.95502, 79.96089, 80.96587, 81.97244 }),
- new(30, "Zn", "Zinc", 65.38, new [] { 53.99204, 54.98398, 55.97254, 56.96506, 57.954591, 58.94931266, 59.9418421, 60.939507, 61.93433397, 62.9332115, 63.92914201, 64.92924077, 65.92603381, 66.92712775, 67.92484455, 68.9265507, 69.9253192, 70.9277196, 71.9268428, 72.9295826, 73.9294073, 74.9328402, 75.933115, 76.9368872, 77.9382892, 78.9426381, 79.9445529, 80.9504026, 81.95426, 82.96056, 83.96521, 84.97226 }),
- new(31, "Ga", "Gallium", 69.723, new [] { 55.99536, 56.9832, 57.97478, 58.96353, 59.95729, 60.949399, 61.94419025, 62.9392942, 63.9368404, 64.93273459, 65.9315894, 66.9282025, 67.9279805, 68.9255735, 69.9260219, 70.92470258, 71.92636747, 72.9251747, 73.9269457, 74.9265002, 75.9288276, 76.9291543, 77.9316088, 78.9328523, 79.9364208, 80.9381338, 81.9431765, 82.9471203, 83.95246, 84.95699, 85.96301, 86.96824 }),
- new(32, "Ge", "Germanium", 72.63, new [] { 57.99172, 58.98249, 59.97036, 60.96379, 61.95502, 62.949628, 63.9416899, 64.9393681, 65.9338621, 66.9327339, 67.9280953, 68.9279645, 69.92424875, 70.92495233, 71.922075826, 72.923458956, 73.921177761, 74.92285837, 75.921402726, 76.923549843, 77.9228529, 78.92536, 79.9253508, 80.9288329, 81.929774, 82.9345391, 83.9375751, 84.9429697, 85.94658, 86.95268, 87.95691, 88.96379, 89.96863 }),
- new(33, "As", "Arsenic", 74.921595, new [] { 59.99388, 60.98112, 61.97361, 62.9639, 63.95743, 64.949611, 65.9441488, 66.93925111, 67.9367741, 68.932246, 69.930926, 70.9271138, 71.9267523, 72.9238291, 73.9239286, 74.92159457, 75.92239202, 76.9206476, 77.921828, 78.9209484, 79.9224746, 80.9221323, 81.9247412, 82.9252069, 83.9293033, 84.9321637, 85.9367015, 86.9402917, 87.94555, 88.94976, 89.95563, 90.96039, 91.96674 }),
- new(34, "Se", "Selenium", 78.971, new [] { 63.97109, 64.9644, 65.95559, 66.949994, 67.94182524, 68.9394148, 69.9335155, 70.9322094, 71.9271405, 72.9267549, 73.922475934, 74.92252287, 75.919213704, 76.919914154, 77.91730928, 78.91849929, 79.9165218, 80.917993, 81.9166995, 82.9191186, 83.9184668, 84.9222608, 85.9243117, 86.9286886, 87.9314175, 88.9366691, 89.9401, 90.94596, 91.94984, 92.95629, 93.96049, 94.9673 }),
- new(35, "Br", "Bromine", 79.904, new [] { 66.96465, 67.95873, 68.950497, 69.944792, 70.9393422, 71.9365886, 72.9316715, 73.9299102, 74.9258105, 75.924542, 76.9213792, 77.9211459, 78.9183376, 79.9185298, 80.9162897, 81.9168032, 82.9151756, 83.916496, 84.9156458, 85.9188054, 86.920674, 87.9240833, 88.9267046, 89.9312928, 90.9343986, 91.9396316, 92.94313, 93.9489, 94.95301, 95.95903, 96.96344, 97.96946 }),
- new(36, "Kr", "Krypton", 83.798, new [] { 68.96518, 69.95604, 70.95027, 71.9420924, 72.9392892, 73.933084, 74.9309457, 75.9259103, 76.92467, 77.92036494, 78.9200829, 79.91637808, 80.9165912, 81.91348273, 82.91412716, 83.9114977282, 84.9125273, 85.9106106269, 86.91335476, 87.9144479, 88.9178355, 89.9195279, 90.9238063, 91.9261731, 92.9311472, 93.93414, 94.939711, 95.943017, 96.94909, 97.95243, 98.95839, 99.96237, 100.96873 }),
- new(37, "Rb", "Rubidium", 85.4678, new [] { 70.96532, 71.95908, 72.95053, 73.9442659, 74.9385732, 75.935073, 76.9304016, 77.9281419, 78.9239899, 79.9225164, 80.9189939, 81.918209, 82.9151142, 83.9143752, 84.9117897379, 85.91116743, 86.909180531, 87.91131559, 88.9122783, 89.9147985, 90.9165372, 91.9197284, 92.9220393, 93.9263948, 94.92926, 95.9341334, 96.9371771, 97.9416869, 98.94503, 99.95003, 100.95404, 101.95952, 102.96392 }),
- new(38, "Sr", "Strontium", 87.62, new [] { 72.9657, 73.95617, 74.94995, 75.941763, 76.9379455, 77.93218, 78.9297077, 79.9245175, 80.9232114, 81.9183999, 82.9175544, 83.9134191, 84.912932, 85.9092606, 86.9088775, 87.9056125, 88.9074511, 89.90773, 90.9101954, 91.9110382, 92.9140242, 93.9153556, 94.9193529, 95.9217066, 96.926374, 97.9286888, 98.9328907, 99.93577, 100.940352, 101.943791, 102.94909, 103.95265, 104.95855, 105.96265, 106.96897 }),
- new(39, "Y", "Yttrium", 88.90584, new [] { 75.95856, 76.949781, 77.94361, 78.93735, 79.9343561, 80.9294556, 81.9269314, 82.922485, 83.9206721, 84.916433, 85.914886, 86.9108761, 87.9095016, 88.9058403, 89.9071439, 90.9072974, 91.9089451, 92.909578, 93.9115906, 94.9128161, 95.9158968, 96.9182741, 97.9223821, 98.924148, 99.927715, 100.9301477, 101.9343277, 102.937243, 103.94196, 104.94544, 105.95056, 106.95452, 107.95996, 108.96436 }),
- new(40, "Zr", "Zirconium", 91.224, new [] { 77.95566, 78.94948, 79.9404, 80.93731, 81.93135, 82.9292421, 83.9233269, 84.9214444, 85.9162972, 86.914818, 87.9102213, 88.9088814, 89.9046977, 90.9056396, 91.9050347, 92.9064699, 93.9063108, 94.9080385, 95.9082714, 96.9109512, 97.9127289, 98.916667, 99.9180006, 100.921448, 101.9231409, 102.927191, 103.929436, 104.934008, 105.93676, 106.94174, 107.94487, 108.95041, 109.95396, 110.95968, 111.9637 }),
- new(41, "Nb", "Niobium", 92.90637, new [] { 80.9496, 81.94396, 82.93729, 83.93449, 84.9288458, 85.9257828, 86.9206937, 87.918222, 88.913445, 89.9112584, 90.9069897, 91.9071881, 92.906373, 93.9072788, 94.9068324, 95.9080973, 96.9080959, 97.9103265, 98.911613, 99.9143276, 100.9153103, 101.9180772, 102.9194572, 103.9228925, 104.9249465, 105.9289317, 106.9315937, 107.9360748, 108.93922, 109.94403, 110.94753, 111.95247, 112.95651, 113.96201, 114.96634 }),
- new(42, "Mo", "Molybdenum", 95.95, new [] { 82.94988, 83.94149, 84.938261, 85.9311748, 86.9281962, 87.9219678, 88.9194682, 89.9139309, 90.9117453, 91.90680796, 92.90680958, 93.9050849, 94.90583877, 95.90467612, 96.90601812, 97.90540482, 98.90770851, 99.9074718, 100.9103414, 101.9102834, 102.913079, 103.9137344, 104.916969, 105.918259, 106.922106, 107.924033, 108.928424, 109.930704, 110.935654, 111.93831, 112.94335, 113.94653, 114.95196, 115.95545, 116.96117 }),
- new(43, "Tc", "Technetium", 98, new [] { 84.95058, 85.94493, 86.9380672, 87.93378, 88.9276487, 89.9240739, 90.9184254, 91.9152698, 92.910246, 93.9096536, 94.9076536, 95.907868, 96.9063667, 97.9072124, 98.9062508, 99.9076539, 100.907309, 101.9092097, 102.909176, 103.911425, 104.911655, 105.914358, 106.9154606, 107.9184957, 108.920256, 109.923744, 110.925901, 111.9299458, 112.932569, 113.93691, 114.93998, 115.94476, 116.94806, 117.95299, 118.95666, 119.96187 }),
- new(44, "Ru", "Ruthenium", 101.07, new [] { 86.95069, 87.9416, 88.93762, 89.9303444, 90.9267419, 91.9202344, 92.9171044, 93.9113429, 94.910406, 95.90759025, 96.9075471, 97.9052868, 98.9059341, 99.9042143, 100.9055769, 101.9043441, 102.9063186, 103.9054275, 104.9077476, 105.9073291, 106.909972, 107.910188, 108.913326, 109.9140407, 110.91757, 111.918809, 112.922844, 113.9246136, 114.92882, 115.9312192, 116.9361, 117.93853, 118.94357, 119.94631, 120.95164, 121.95447, 122.95989, 123.96305 }),
- new(45, "Rh", "Rhodium", 102.90549, new [] { 88.95058, 89.94422, 90.93688, 91.9323677, 92.9259128, 93.9217305, 94.9158979, 95.914453, 96.911329, 97.910708, 98.9081282, 99.908117, 100.9061606, 101.9068374, 102.905498, 103.9066492, 104.9056885, 105.9072868, 106.906748, 107.908714, 108.9087488, 109.911079, 110.9116423, 111.914403, 112.9154393, 113.918718, 114.9203116, 115.924059, 116.9260354, 117.93034, 118.932557, 119.93686, 120.93942, 121.94399, 122.94685, 123.95151, 124.95469, 125.95946 }),
- new(46, "Pd", "Palladium", 106.42, new [] { 90.95032, 91.94088, 92.93651, 93.9290376, 94.9248898, 95.9182151, 96.916472, 97.9126983, 98.9117748, 99.908505, 100.9082864, 101.9056022, 102.9060809, 103.9040305, 104.9050796, 105.9034804, 106.9051282, 107.9038916, 108.9059504, 109.9051722, 110.90768968, 111.9073297, 112.910261, 113.9103686, 114.913659, 115.914297, 116.9179547, 117.9190667, 118.9233402, 119.9245511, 120.9289503, 121.930632, 122.93514, 123.93714, 124.94179, 125.94416, 126.94907, 127.95183 }),
- new(47, "Ag", "Silver", 107.8682, new [] { 92.95033, 93.94373, 94.93602, 95.930744, 96.92397, 97.92156, 98.9176458, 99.9161154, 100.912684, 101.9117047, 102.9089631, 103.9086239, 104.9065256, 105.9066636, 106.9050916, 107.9059503, 108.9047553, 109.9061102, 110.9052959, 111.9070486, 112.906573, 113.908823, 114.908767, 115.9113868, 116.911774, 117.9145955, 118.91557, 119.9187848, 120.920125, 121.923664, 122.925337, 123.92893, 124.93105, 125.93475, 126.93711, 127.94106, 128.94395, 129.9507 }),
- new(48, "Cd", "Cadmium", 112.414, new [] { 94.94994, 95.94034, 96.9351, 97.927389, 98.9249258, 99.9203488, 100.9185862, 101.914482, 102.9134165, 103.9098564, 104.9094639, 105.9064599, 106.9066121, 107.9041834, 108.9049867, 109.90300661, 110.90418287, 111.90276287, 112.90440813, 113.90336509, 114.90543751, 115.90476315, 116.907226, 117.906922, 118.909847, 119.9098681, 120.9129637, 121.9134591, 122.9168925, 123.9176574, 124.9212576, 125.9224291, 126.926472, 127.9278129, 128.93182, 129.93394, 130.9406, 131.94604, 132.95285 }),
- new(49, "In", "Indium", 114.818, new [] { 96.94934, 97.94214, 98.93411, 99.93096, 100.92634, 101.9241071, 102.9198819, 103.9182145, 104.914502, 105.913464, 106.91029, 107.9096935, 108.9071514, 109.90717, 110.9051085, 111.9055377, 112.90406184, 113.90491791, 114.903878776, 115.90525999, 116.9045157, 117.9063566, 118.9058507, 119.907967, 120.907851, 121.910281, 122.910434, 123.913182, 124.913605, 125.916507, 126.917446, 127.9204, 128.9218053, 129.924977, 130.9269715, 131.933001, 132.93831, 133.94454, 134.95005 }),
- new(50, "Sn", "Tin", 118.71, new [] { 98.94853, 99.9385, 100.93526, 101.93029, 102.928105, 103.9231052, 104.9212684, 105.9169574, 106.9157137, 107.9118943, 108.9112921, 109.907845, 110.9077401, 111.90482387, 112.9051757, 113.9027827, 114.903344699, 115.9017428, 116.90295398, 117.90160657, 118.90331117, 119.90220163, 120.9042426, 121.9034438, 122.9057252, 123.9052766, 124.9077864, 125.907659, 126.91039, 127.910507, 128.913465, 129.9139738, 130.917045, 131.9178267, 132.9239134, 133.9286821, 134.9349086, 135.93999, 136.94655, 137.95184 }),
- new(51, "Sb", "Antimony", 121.76, new [] { 102.93969, 103.93648, 104.931276, 105.928638, 106.9241506, 107.9222267, 108.9181411, 109.9168543, 110.9132182, 111.9124, 112.909375, 113.90929, 114.906598, 115.9067931, 116.9048415, 117.9055321, 118.9039455, 119.9050794, 120.903812, 121.9051699, 122.9042132, 123.905935, 124.905253, 125.907253, 126.9069243, 127.909146, 128.909147, 129.911662, 130.9119888, 131.9145077, 132.9152732, 133.9205357, 134.9251851, 135.9307459, 136.93555, 137.94145, 138.94655, 139.95283 }),
- new(52, "Te", "Tellurium", 127.6, new [] { 104.9433, 105.9375, 106.935012, 107.9293805, 108.9273045, 109.9224581, 110.9210006, 111.9167279, 112.915891, 113.912089, 114.911902, 115.90846, 116.908646, 117.905854, 118.9064071, 119.9040593, 120.904944, 121.9030435, 122.9042698, 123.9028171, 124.9044299, 125.9033109, 126.9052257, 127.90446128, 128.90659646, 129.906222748, 130.908522213, 131.9085467, 132.9109688, 133.911394, 134.9165557, 135.9201006, 136.9255989, 137.9294722, 138.9353672, 139.939499, 140.9458, 141.95022, 142.95676 }),
- new(53, "I", "Iodine", 126.90447, new [] { 106.94678, 107.94348, 108.9380853, 109.935089, 110.9302692, 111.928005, 112.9236501, 113.92185, 114.918048, 115.91681, 116.913648, 117.913074, 118.910074, 119.910087, 120.9074051, 121.9075888, 122.9055885, 123.906209, 124.9046294, 125.9056233, 126.9044719, 127.9058086, 128.9049837, 129.9066702, 130.9061263, 131.9079935, 132.907797, 133.9097588, 134.9100488, 135.914604, 136.9180282, 137.9227264, 138.926506, 139.93173, 140.93569, 141.9412, 142.94565, 143.95139, 144.95605 }),
- new(54, "Xe", "Xenon", 131.293, new [] { 108.95043, 109.94426, 110.941607, 111.935559, 112.9332217, 113.92798, 114.926294, 115.921581, 116.920359, 117.916179, 118.915411, 119.911784, 120.911453, 121.908368, 122.908482, 123.905892, 124.9063944, 125.9042983, 126.9051829, 127.903531, 128.9047808611, 129.903509349, 130.90508406, 131.9041550856, 132.9059108, 133.90539466, 134.9072278, 135.907214484, 136.91155778, 137.9141463, 138.9187922, 139.9216458, 140.9267872, 141.9299731, 142.9353696, 143.9389451, 144.94472, 145.948518, 146.95426, 147.95813 }),
- new(55, "Cs", "Caesium", 132.90545196, new [] { 111.950309, 112.9444291, 113.941296, 114.93591, 115.93337, 116.928617, 117.92656, 118.922377, 119.920677, 120.917227, 121.916108, 122.912996, 123.9122578, 124.909728, 125.909446, 126.9074174, 127.9077487, 128.9060657, 129.9067093, 130.9054649, 131.9064339, 132.905451961, 133.906718503, 134.905977, 135.9073114, 136.90708923, 137.9110171, 138.9133638, 139.9172831, 140.9200455, 141.924296, 142.927349, 143.932076, 144.935527, 145.940344, 146.944156, 147.94923, 148.95302, 149.95833, 150.96258 }),
- new(56, "Ba", "Barium", 137.327, new [] { 113.95066, 114.94737, 115.94128, 116.93814, 117.93306, 118.93066, 119.92605, 120.92405, 121.919904, 122.918781, 123.915094, 124.914472, 125.91125, 126.911091, 127.908342, 128.908681, 129.9063207, 130.906941, 131.9050611, 132.9060074, 133.90450818, 134.90568838, 135.90457573, 136.90582714, 137.905247, 138.9088411, 139.9106057, 140.9144033, 141.9164324, 142.9206253, 143.9229549, 144.9275184, 145.930284, 146.935304, 147.938171, 148.94308, 149.94605, 150.95127, 151.95481, 152.96036 }),
- new(57, "La", "Lanthanum", 138.90547, new [] { 115.9563, 116.94999, 117.94673, 118.94099, 119.93807, 120.93315, 121.93071, 122.9263, 123.924574, 124.920816, 125.919513, 126.916375, 127.915592, 128.912694, 129.912369, 130.91007, 131.910119, 132.908218, 133.908514, 134.906984, 135.907635, 136.9064504, 137.9071149, 138.9063563, 139.9094806, 140.910966, 141.9140909, 142.9160795, 143.919646, 144.921808, 145.925875, 146.928418, 147.932679, 148.93535, 149.93947, 150.94232, 151.94682, 152.95036, 153.95517, 154.95901 }),
- new(58, "Ce", "Cerium", 140.116, new [] { 118.95271, 119.94654, 120.94335, 121.93787, 122.93528, 123.93031, 124.92844, 125.923971, 126.922727, 127.918911, 128.918102, 129.914736, 130.914429, 131.911464, 132.91152, 133.908928, 134.909161, 135.90712921, 136.90776236, 137.905991, 138.9066551, 139.9054431, 140.9082807, 141.9092504, 142.9123921, 143.9136529, 144.917265, 145.918802, 146.9226899, 147.924424, 148.928427, 149.930384, 150.934272, 151.9366, 152.94093, 153.9438, 154.94855, 155.95183, 156.95705 }),
- new(59, "Pr", "Praseodymium", 140.90766, new [] { 120.95532, 121.95175, 122.94596, 123.94294, 124.9377, 125.93524, 126.93071, 127.928791, 128.925095, 129.92359, 130.920235, 131.919255, 132.916331, 133.915697, 134.913112, 135.912677, 136.9106792, 137.910754, 138.9089408, 139.9090803, 140.9076576, 141.9100496, 142.9108228, 143.9133109, 144.9145182, 145.91768, 146.919008, 147.92213, 148.923736, 149.9266765, 150.928309, 151.931553, 152.933904, 153.93753, 154.940509, 155.94464, 156.94789, 157.95241, 158.95589 }),
- new(60, "Nd", "Neodymium", 144.242, new [] { 123.9522, 124.9489, 125.94311, 126.94038, 127.93525, 128.9331, 129.928506, 130.927248, 131.923321, 132.922348, 133.91879, 134.918181, 135.914976, 136.914562, 137.91195, 138.911954, 139.90955, 140.9096147, 141.907729, 142.90982, 143.910093, 144.9125793, 145.9131226, 146.9161061, 147.9168993, 148.9201548, 149.9209022, 150.9238403, 151.924692, 152.927718, 153.92948, 154.9331357, 155.93508, 156.939386, 157.94197, 158.94653, 159.9494, 160.95428 }),
- new(61, "Pm", "Promethium", 145, new [] { 125.95792, 126.95192, 127.9487, 128.94323, 129.94053, 130.93567, 131.93384, 132.929782, 133.928353, 134.924823, 135.923585, 136.92048, 137.919548, 138.9168, 139.91604, 140.913555, 141.91289, 142.9109383, 143.9125964, 144.9127559, 145.9147024, 146.915145, 147.9174819, 148.9183423, 149.920991, 150.9212175, 151.923506, 152.9241567, 153.926472, 154.928137, 155.9311175, 156.9331214, 157.936565, 158.939287, 159.9431, 160.94607, 161.95022, 162.95357 }),
- new(62, "Sm", "Samarium", 150.36, new [] { 127.95842, 128.95476, 129.949, 130.94618, 131.94087, 132.93856, 133.93411, 134.93252, 135.928276, 136.926971, 137.923244, 138.922297, 139.918995, 140.9184816, 141.9152044, 142.9146353, 143.9120065, 144.9134173, 145.913047, 146.9149044, 147.9148292, 148.9171921, 149.9172829, 150.9199398, 151.9197397, 152.9221047, 153.9222169, 154.9246477, 155.925536, 156.9284187, 157.929951, 158.9332172, 159.9353353, 160.9391602, 161.94146, 162.94555, 163.94836, 164.95297 }),
- new(63, "Eu", "Europium", 151.964, new [] { 129.96369, 130.95784, 131.95467, 132.94929, 133.9464, 134.94187, 135.93962, 136.93546, 137.933709, 138.929792, 139.928088, 140.924932, 141.923442, 142.920299, 143.91882, 144.9162726, 145.917211, 146.9167527, 147.918089, 148.9179378, 149.9197077, 150.9198578, 151.9217522, 152.921238, 153.922987, 154.9229011, 155.9247605, 156.9254334, 157.927799, 158.9291001, 159.931851, 160.933664, 161.936989, 162.939196, 163.94274, 164.94559, 165.94962, 166.95289 }),
- new(64, "Gd", "Gadolinium", 157.25, new [] { 132.96133, 133.95566, 134.95245, 135.9473, 136.94502, 137.94025, 138.93813, 139.933674, 140.932126, 141.928116, 142.92675, 143.922963, 144.921713, 145.9183188, 146.9191014, 147.9181215, 148.9193481, 149.9186644, 150.920356, 151.9197995, 152.921758, 153.9208741, 154.9226305, 155.9221312, 156.9239686, 157.9241123, 158.926397, 159.9270624, 160.9296775, 161.930993, 162.9341769, 163.93583, 164.93936, 165.94146, 166.94545, 167.94808, 168.9526 }),
- new(65, "Tb", "Terbium", 158.925354, new [] { 134.96476, 135.96129, 136.95602, 137.95312, 138.94833, 139.94581, 140.94145, 141.93928, 142.935137, 143.933045, 144.92882, 145.927253, 146.9240548, 147.924282, 148.9232535, 149.9236649, 150.9231096, 151.924083, 152.9234424, 153.924685, 154.923511, 155.9247552, 156.924033, 157.9254209, 158.9253547, 159.9271756, 160.9275778, 161.929495, 162.9306547, 163.93336, 164.93498, 165.93786, 166.93996, 167.9434, 168.94597, 169.94984, 170.95273 }),
- new(66, "Dy", "Dysprosium", 162.5, new [] { 137.9625, 138.95959, 139.95402, 140.95128, 141.94619, 142.943994, 143.9392695, 144.937474, 145.9328445, 146.9310827, 147.927157, 148.927322, 149.9255933, 150.9261916, 151.9247253, 152.9257724, 153.9244293, 154.925759, 155.9242847, 156.9254707, 157.9244159, 158.925747, 159.9252046, 160.9269405, 161.9268056, 162.9287383, 163.9291819, 164.9317105, 165.9328139, 166.935661, 167.93713, 168.94031, 169.94239, 170.94612, 171.94846, 172.95283 }),
- new(67, "Ho", "Holmium", 164.930328, new [] { 139.96859, 140.96311, 141.96001, 142.95486, 143.9521097, 144.9472674, 145.9449935, 146.9401423, 147.937744, 148.933803, 149.933498, 150.9316983, 151.931724, 152.9302064, 153.9306068, 154.929104, 155.929706, 156.928254, 157.928946, 158.9277197, 159.928737, 160.9278615, 161.9291023, 162.928741, 163.9302403, 164.9303288, 165.9322909, 166.9331385, 167.935522, 168.936878, 169.939625, 170.94147, 171.94473, 172.94702, 173.95095, 174.95362 }),
- new(68, "Er", "Erbium", 167.259, new [] { 141.9701, 142.96662, 143.9607, 144.95805, 145.9524184, 146.949964, 147.944735, 148.942306, 149.937916, 150.937449, 151.935057, 152.93508, 153.9327908, 154.9332159, 155.931067, 156.931949, 157.929893, 158.9306918, 159.929077, 160.9300046, 161.9287884, 162.9300408, 163.9292088, 164.9307345, 165.9302995, 166.9320546, 167.9323767, 168.9345968, 169.9354702, 170.9380357, 171.9393619, 172.9424, 173.94423, 174.94777, 175.94994, 176.95399 }),
- new(69, "Tm", "Thulium", 168.934218, new [] { 143.97628, 144.97039, 145.96684, 146.9613799, 147.958384, 148.95289, 149.95009, 150.945488, 151.944422, 152.94204, 153.94157, 154.93921, 155.938992, 156.936944, 157.93698, 158.934975, 159.935263, 160.933549, 161.934002, 162.9326592, 163.933544, 164.9324431, 165.933561, 166.9328562, 167.9341774, 168.9342179, 169.935806, 170.9364339, 171.9384055, 172.9396084, 173.942173, 174.943841, 175.947, 176.94904, 177.95264, 178.95534 }),
- new(70, "Yb", "Ytterbium", 173.045, new [] { 147.96758, 148.96436, 149.95852, 150.9554, 151.95027, 152.94932, 153.946396, 154.945783, 155.942825, 156.942645, 157.9398705, 158.940055, 159.937557, 160.937907, 161.935774, 162.93634, 163.934495, 164.93527, 165.9338747, 166.934953, 167.9338896, 168.9351825, 169.9347664, 170.9363302, 171.9363859, 172.9382151, 173.9388664, 174.9412808, 175.9425764, 176.9452656, 177.946651, 178.95004, 179.95212, 180.95589 }),
- new(71, "Lu", "Lutetium", 174.9668, new [] { 149.97355, 150.96768, 151.96412, 152.95875, 153.95736, 154.954321, 155.953033, 156.950127, 157.949316, 158.946636, 159.946033, 160.943572, 161.943283, 162.941179, 163.941339, 164.939407, 165.939859, 166.93827, 167.938736, 168.9376441, 169.938478, 170.937917, 171.9390891, 172.938934, 173.9403409, 174.9407752, 175.9426897, 176.9437615, 177.945958, 178.9473309, 179.949888, 180.95191, 181.95504, 182.957363, 183.96091, 184.96362 }),
- new(72, "Hf", "Hafnium", 178.49, new [] { 152.97069, 153.96486, 154.96311, 155.95935, 156.95824, 157.954801, 158.953996, 159.950691, 160.950278, 161.9472148, 162.947113, 163.944371, 164.944567, 165.94218, 166.9426, 167.940568, 168.941259, 169.939609, 170.940492, 171.93945, 172.940513, 173.9400461, 174.9415092, 175.9414076, 176.9432277, 177.9437058, 178.9458232, 179.946557, 180.9491083, 181.9505612, 182.95353, 183.955446, 184.958862, 185.960897, 186.96477, 187.96685, 188.97084 }),
- new(73, "Ta", "Tantalum", 180.94788, new [] { 154.97424, 155.97203, 156.96818, 157.96654, 158.963023, 159.961488, 160.958452, 161.957294, 162.954337, 163.953534, 164.950781, 165.950512, 166.948093, 167.948047, 168.946011, 169.946175, 170.944476, 171.944895, 172.94375, 173.944454, 174.943737, 175.944857, 176.9444795, 177.945678, 178.9459366, 179.9474648, 180.9479958, 181.9501519, 182.9513726, 183.954008, 184.955559, 185.958551, 186.960386, 187.963916, 188.96583, 189.96939, 190.97156, 191.97514 }),
- new(74, "W", "Tungsten", 183.84, new [] { 156.97884, 157.97456, 158.97264, 159.96846, 160.9672, 161.963499, 162.962524, 163.958961, 164.958281, 165.955031, 166.954805, 167.951806, 168.951779, 169.949232, 170.949451, 171.947292, 172.947689, 173.946079, 174.946717, 175.945634, 176.946643, 177.945883, 178.947077, 179.9467108, 180.9481978, 181.94820394, 182.95022275, 183.95093092, 184.95341897, 185.9543628, 186.9571588, 187.9584862, 188.961763, 189.963091, 190.966531, 191.96817, 192.97178, 193.97367 }),
- new(75, "Re", "Rhenium", 186.207, new [] { 158.98418, 159.98182, 160.97757, 161.97584, 162.97208, 163.970453, 164.967103, 165.965761, 166.962595, 167.961573, 168.958766, 169.95822, 170.955716, 171.95542, 172.953243, 173.953115, 174.951381, 175.951623, 176.950328, 177.950989, 178.949989, 179.950792, 180.950058, 181.95121, 182.9508196, 183.9525228, 184.9529545, 185.9549856, 186.9557501, 187.9581115, 188.959226, 189.961744, 190.963122, 191.966088, 192.967541, 193.97076, 194.97254, 195.9758, 196.97799, 197.9816 }),
- new(76, "Os", "Osmium", 190.23, new [] { 160.98903, 161.98443, 162.98241, 163.97802, 164.9766, 165.972692, 166.971549, 167.967808, 168.967018, 169.963578, 170.963174, 171.960017, 172.959808, 173.957064, 174.956945, 175.954806, 176.954966, 177.953254, 178.953817, 179.952375, 180.953247, 181.95211, 182.953125, 183.9524885, 184.9540417, 185.953835, 186.9557474, 187.9558352, 188.9581442, 189.9584437, 190.9609264, 191.961477, 192.9641479, 193.9651772, 194.968318, 195.969641, 196.97283, 197.97441, 198.97801, 199.97984, 200.98364, 201.98595 }),
- new(77, "Ir", "Iridium", 192.217, new [] { 163.99191, 164.9875, 165.98566, 166.981666, 167.979907, 168.976298, 169.974922, 170.97164, 171.970607, 172.967506, 173.966861, 174.96415, 175.96365, 176.961301, 177.961082, 178.95912, 179.959229, 180.957625, 181.958076, 182.95684, 183.957476, 184.956698, 185.957944, 186.957542, 187.958828, 188.958715, 189.9605412, 190.9605893, 191.9626002, 192.9629216, 193.9650735, 194.9659747, 195.968397, 196.969655, 197.97228, 198.973805, 199.9768, 200.97864, 201.98199, 202.98423, 203.9896 }),
- new(78, "Pt", "Platinum", 195.084, new [] { 165.99486, 166.99269, 167.98813, 168.98657, 169.982496, 170.981245, 171.977351, 172.976443, 173.97282, 174.97241, 175.968938, 176.96847, 177.96565, 178.965359, 179.963032, 180.963098, 181.961172, 182.961597, 183.959915, 184.960614, 185.959351, 186.960617, 187.9593889, 188.960831, 189.9599297, 190.9616729, 191.9610387, 192.9629824, 193.9626809, 194.9647917, 195.96495209, 196.96734069, 197.9678949, 198.9705952, 199.971443, 200.974513, 201.975639, 202.97893, 203.98076, 204.98608, 205.98966 }),
- new(79, "Au", "Gold", 196.96657, new [] { 168.99808, 169.99597, 170.991876, 171.989942, 172.986241, 173.984717, 174.981304, 175.98025, 176.97687, 177.976032, 178.973174, 179.972523, 180.970079, 181.969618, 182.967591, 183.967452, 184.96579, 185.965953, 186.964543, 187.965349, 188.963948, 189.964698, 190.963702, 191.964814, 192.9641373, 193.9654178, 194.9650352, 195.9665699, 196.96656879, 197.96824242, 198.96876528, 199.970756, 200.9716575, 201.973856, 202.9751544, 203.97783, 204.97985, 205.98474, 206.9884, 207.99345, 208.99735, 210.0025 }),
- new(80, "Hg", "Mercury", 200.592, new [] { 171.00353, 171.99881, 172.99709, 173.992865, 174.991441, 175.987361, 176.986277, 177.982484, 178.981831, 179.97826, 180.977819, 181.974689, 182.9744448, 183.971714, 184.971899, 185.969362, 186.969814, 187.967567, 188.968195, 189.966323, 190.967157, 191.965635, 192.966653, 193.9654491, 194.966721, 195.9658326, 196.9672128, 197.9667686, 198.96828064, 199.96832659, 200.97030284, 201.9706434, 202.9728728, 203.97349398, 204.9760734, 205.977514, 206.9823, 207.985759, 208.99072, 209.99424, 210.99933, 212.00296, 213.00823, 214.012, 215.0174, 216.02132 }),
- new(81, "Tl", "Thallium", 204.38, new [] { 176.000624, 176.996431, 177.99485, 178.991111, 179.990057, 180.98626, 181.985713, 182.982193, 183.981886, 184.978789, 185.978651, 186.9759063, 187.976021, 188.973588, 189.973828, 190.9717842, 191.972225, 192.970502, 193.971081, 194.969774, 195.970481, 196.969576, 197.970483, 198.969877, 199.9709633, 200.970822, 201.972102, 202.9723446, 203.9738639, 204.9744278, 205.9761106, 206.9774197, 207.982019, 208.9853594, 209.990074, 210.993475, 211.99834, 213.001915, 214.00694, 215.01064, 216.0158, 217.01966, 218.02479 }),
- new(82, "Pb", "Lead", 207.2, new [] { 178.003831, 179.002201, 179.997928, 180.996653, 181.992672, 182.991872, 183.988136, 184.98761, 185.984238, 186.9839109, 187.980875, 188.980807, 189.978082, 190.978276, 191.975775, 192.976173, 193.974012, 194.974543, 195.972774, 196.9734312, 197.972034, 198.972913, 199.971819, 200.972883, 201.972152, 202.9733911, 203.973044, 204.9744822, 205.9744657, 206.9758973, 207.9766525, 208.9810905, 209.9841889, 210.9887371, 211.9918977, 212.9965629, 213.9998059, 215.00474, 216.00803, 217.01314, 218.01659, 219.02177, 220.02541 }),
- new(83, "Bi", "Bismuth", 208.9804, new [] { 184.001275, 184.9976, 185.996644, 186.993147, 187.992287, 188.989195, 189.988622, 190.9857866, 191.985469, 192.98296, 193.982785, 194.9806488, 195.980667, 196.9788651, 197.979206, 198.977673, 199.978131, 200.97701, 201.977734, 202.976893, 203.9778361, 204.9773867, 205.9784993, 206.978471, 207.9797425, 208.9803991, 209.9841207, 210.9872697, 211.991286, 212.9943851, 213.998712, 215.00177, 216.006306, 217.009372, 218.014188, 219.01748, 220.02235, 221.02587, 222.03078, 223.0345, 224.03947 }),
- new(84, "Po", "Polonium", 209, new [] { 186.004393, 187.003041, 187.999416, 188.998473, 189.995101, 190.9945585, 191.991336, 192.991026, 193.988186, 194.988126, 195.985526, 196.98566, 197.983389, 198.983667, 199.981799, 200.9822598, 201.980758, 202.9814161, 203.98031, 204.981203, 205.980474, 206.9815938, 207.9812461, 208.9824308, 209.9828741, 210.9866536, 211.9888684, 212.9928576, 213.9952017, 214.9994201, 216.0019152, 217.0063182, 218.0089735, 219.013614, 220.016386, 221.021228, 222.02414, 223.02907, 224.03211, 225.03707, 226.04031, 227.04539 }),
- new(85, "At", "Astatine", 210, new [] { 191.004148, 192.003152, 192.999927, 193.999236, 194.9962685, 195.9958, 196.993189, 197.992784, 198.9905277, 199.990351, 200.9884171, 201.98863, 202.986943, 203.987251, 204.986076, 205.986657, 206.9858, 207.9866133, 208.9861702, 209.9871479, 210.9874966, 211.9907377, 212.992937, 213.9963721, 214.9986528, 216.0024236, 217.0047192, 218.008695, 219.0111618, 220.015433, 221.018017, 222.022494, 223.025151, 224.029749, 225.03263, 226.03716, 227.04024, 228.04475, 229.04812 }),
- new(86, "Rn", "Radon", 222, new [] { 193.009708, 194.006144, 195.005422, 196.002116, 197.001585, 197.998679, 198.99839, 199.99569, 200.995628, 201.993264, 202.993388, 203.99143, 204.991719, 205.990214, 206.9907303, 207.989635, 208.990415, 209.9896891, 210.9906011, 211.9907039, 212.9938831, 213.995363, 214.9987459, 216.0002719, 217.003928, 218.0056016, 219.0094804, 220.0113941, 221.0155371, 222.0175782, 223.0218893, 224.024096, 225.028486, 226.030861, 227.035304, 228.037835, 229.042257, 230.04514, 231.04987 }),
- new(87, "Fr", "Francium", 223, new [] { 199.007259, 200.006586, 201.003867, 202.00332, 203.0009407, 204.000652, 204.9985939, 205.998666, 206.996946, 207.997138, 208.995955, 209.996422, 210.995556, 211.9962257, 212.996186, 213.9989713, 215.0003418, 216.0031899, 217.0046323, 218.0075787, 219.0092524, 220.0123277, 221.0142552, 222.017552, 223.019736, 224.023398, 225.025573, 226.029566, 227.031869, 228.035823, 229.038298, 230.042416, 231.045158, 232.04937, 233.05264 }),
- new(88, "Ra", "Radium", 226, new [] { 201.01271, 202.00976, 203.009304, 204.006492, 205.006268, 206.003828, 207.003799, 208.001841, 209.00199, 210.000494, 211.0008932, 211.999787, 213.000384, 214.0000997, 215.0027204, 216.0035334, 217.0063207, 218.007141, 219.0100855, 220.0110259, 221.0139177, 222.0153748, 223.0185023, 224.020212, 225.0236119, 226.0254103, 227.0291783, 228.0310707, 229.034942, 230.037055, 231.041027, 232.0434753, 233.047582, 234.050342, 235.05497 }),
- new(89, "Ac", "Actinium", 227, new [] { 206.014452, 207.011966, 208.01155, 209.009495, 210.009436, 211.007732, 212.007813, 213.006609, 214.006918, 215.006475, 216.008743, 217.009344, 218.011642, 219.012421, 220.0147549, 221.015592, 222.0178442, 223.0191377, 224.0217232, 225.02323, 226.0260984, 227.0277523, 228.0310215, 229.032956, 230.036327, 231.038393, 232.042034, 233.044346, 234.048139, 235.05084, 236.054988, 237.05827 }),
- new(90, "Th", "Thorium", 232.0377, new [] { 208.0179, 209.017753, 210.015094, 211.014929, 212.012988, 213.013009, 214.0115, 215.0117248, 216.011056, 217.013117, 218.013276, 219.015537, 220.015748, 221.018184, 222.018469, 223.0208119, 224.021464, 225.0239514, 226.0249034, 227.0277042, 228.0287413, 229.0317627, 230.0331341, 231.0363046, 232.0380558, 233.0415823, 234.0436014, 235.047255, 236.049657, 237.053629, 238.0565, 239.06077 }),
- new(91, "Pa", "Protactinium", 231.03588, new [] { 212.023203, 213.021109, 214.020918, 215.019183, 216.019109, 217.018325, 218.020059, 219.019904, 220.021705, 221.021875, 222.023784, 223.023963, 224.0256176, 225.026131, 226.027948, 227.0288054, 228.0310517, 229.0320972, 230.034541, 231.0358842, 232.0385917, 233.0402472, 234.0433072, 235.045399, 236.048668, 237.051023, 238.054637, 239.05726, 240.06098, 241.06408 }),
- new(92, "U", "Uranium", 238.02891, new [] { 217.02466, 218.023523, 219.024999, 220.02462, 221.02628, 222.026, 223.027739, 224.027605, 225.029391, 226.029339, 227.031157, 228.031371, 229.0335063, 230.0339401, 231.0362939, 232.0371563, 233.0396355, 234.0409523, 235.0439301, 236.0455682, 237.0487304, 238.0507884, 239.0542935, 240.0565934, 241.06033, 242.06293, 243.06699 }),
- new(93, "Np", "Neptunium", 237, new [] { 219.03143, 220.03254, 221.03204, 222.0333, 223.03285, 224.03422, 225.033911, 226.035188, 227.034957, 228.036067, 229.036264, 230.037828, 231.038245, 232.04011, 233.040741, 234.0428953, 235.0440635, 236.04657, 237.0481736, 238.0509466, 239.0529392, 240.056165, 241.058253, 242.06164, 243.06428, 244.06785, 245.0708 }),
- new(94, "Pu", "Plutonium", 244, new [] { 228.038732, 229.040144, 230.03965, 231.041102, 232.041185, 233.042998, 234.0433174, 235.045286, 236.0460581, 237.0484098, 238.0495601, 239.0521636, 240.0538138, 241.0568517, 242.0587428, 243.0620036, 244.0642053, 245.067826, 246.070205, 247.07419 }),
- new(95, "Am", "Americium", 243, new [] { 230.04609, 231.04556, 232.04645, 233.04644, 234.04773, 235.047908, 236.04943, 237.049996, 238.051985, 239.0530247, 240.0553, 241.0568293, 242.0595494, 243.0613813, 244.0642851, 245.0664548, 246.069775, 247.07209, 248.07575, 249.07848 }),
- new(96, "Cm", "Curium", 247, new [] { 232.04982, 233.05077, 234.05016, 235.05154, 236.051374, 237.052869, 238.053081, 239.05491, 240.0555297, 241.0576532, 242.058836, 243.0613893, 244.0627528, 245.0654915, 246.0672238, 247.0703541, 248.0723499, 249.0759548, 250.078358, 251.082286, 252.08487 }),
- new(97, "Bk", "Berkelium", 247, new [] { 234.05727, 235.05658, 236.05748, 237.0571, 238.0582, 239.05824, 240.05976, 241.06016, 242.06198, 243.0630078, 244.065181, 245.0663618, 246.068673, 247.0703073, 248.073088, 249.0749877, 250.0783167, 251.080762, 252.08431, 253.08688, 254.0906 }),
- new(98, "Cf", "Californium", 251, new [] { 237.062198, 238.06149, 239.06253, 240.062256, 241.06369, 242.063754, 243.06548, 244.0660008, 245.0680487, 246.0688055, 247.070965, 248.0721851, 249.0748539, 250.0764062, 251.0795886, 252.0816272, 253.0851345, 254.087324, 255.09105, 256.09344 }),
- new(99, "Es", "Einsteinium", 252, new [] { 239.06823, 240.06892, 241.06856, 242.06957, 243.06951, 244.07088, 245.07125, 246.0729, 247.073622, 248.075471, 249.076411, 250.07861, 251.0799936, 252.08298, 253.0848257, 254.0880222, 255.090275, 256.0936, 257.09598, 258.09952 }),
- new(100, "Fm", "Fermium", 257, new [] { 241.07421, 242.07343, 243.07446, 244.07404, 245.07535, 246.07535, 247.07694, 248.0771865, 249.0789275, 250.079521, 251.08154, 252.0824671, 253.0851846, 254.0868544, 255.089964, 256.0917745, 257.0951061, 258.09708, 259.1006, 260.10281 }),
- new(101, "Md", "Mendelevium", 258, new [] { 245.08081, 246.08171, 247.08152, 248.08282, 249.08291, 250.08441, 251.084774, 252.08643, 253.087144, 254.08959, 255.0910841, 256.09389, 257.0955424, 258.0984315, 259.10051, 260.10365, 261.10583, 262.1091 }),
- new(102, "No", "Nobelium", 259, new [] { 248.08655, 249.0878, 250.08756, 251.08894, 252.088967, 253.0905641, 254.090956, 255.093191, 256.0942829, 257.0968878, 258.09821, 259.10103, 260.10264, 261.1057, 262.10746, 263.11071, 264.11273 }),
- new(103, "Lr", "Lawrencium", 266, new [] { 251.09418, 252.09526, 253.09509, 254.09648, 255.096562, 256.098494, 257.099418, 258.10176, 259.102902, 260.1055, 261.10688, 262.10961, 263.11136, 264.1142, 265.11619, 266.11983 }),
- new(104, "Rf", "Rutherfordium", 267, new [] { 253.10044, 254.10005, 255.10127, 256.101152, 257.102918, 258.103428, 259.105596, 260.10644, 261.108773, 262.10992, 263.11249, 264.11388, 265.11668, 266.11817, 267.12179, 268.12397 }),
- new(105, "Db", "Dubnium", 268, new [] { 255.10707, 256.10789, 257.10758, 258.10928, 259.109492, 260.1113, 261.11192, 262.11407, 263.11499, 264.11741, 265.11861, 266.12103, 267.12247, 268.12567, 269.12791, 270.13136 }),
- new(106, "Sg", "Seaborgium", 269, new [] { 258.11298, 259.1144, 260.114384, 261.115949, 262.116337, 263.11829, 264.11893, 265.12109, 266.12198, 267.12436, 268.12539, 269.12863, 270.13043, 271.13393, 272.13589, 273.13958 }),
- new(107, "Bh", "Bohrium", 270, new [] { 260.12166, 261.12145, 262.12297, 263.12292, 264.12459, 265.12491, 266.12679, 267.1275, 268.12969, 269.13042, 270.13336, 271.13526, 272.13826, 273.14024, 274.14355, 275.14567 }),
- new(108, "Hs", "Hassium", 270, new [] { 263.12852, 264.128357, 265.129793, 266.130046, 267.13167, 268.13186, 269.13375, 270.13429, 271.13717, 272.1385, 273.14168, 274.1433, 275.14667, 276.14846, 277.1519 }),
- new(109, "Mt", "Meitnerium", 278, new [] { 265.136, 266.13737, 267.13719, 268.13865, 269.13882, 270.14033, 271.14074, 272.14341, 273.1444, 274.14724, 275.14882, 276.15159, 277.15327, 278.15631, 279.15808 }),
- new(110, "Ds", "Darmstadtium", 281, new [] { 267.14377, 268.14348, 269.144752, 270.144584, 271.14595, 272.14602, 273.14856, 274.14941, 275.15203, 276.15303, 277.15591, 278.15704, 279.1601, 280.16131, 281.16451 }),
- new(111, "Rg", "Roentgenium", 282, new [] { 272.15327, 273.15313, 274.15525, 275.15594, 276.15833, 277.15907, 278.16149, 279.16272, 280.16514, 281.16636, 282.16912, 283.17054 }),
- new(112, "Cn", "Copernicium", 285, new [] { 276.16141, 277.16364, 278.16416, 279.16654, 280.16715, 281.16975, 282.1705, 283.17327, 284.17416, 285.17712 }),
- new(113, "Nh", "Nihonium", 286, new [] { 278.17058, 279.17095, 280.17293, 281.17348, 282.17567, 283.17657, 284.17873, 285.17973, 286.18221, 287.18339 }),
- new(114, "Fl", "Flerovium", 289, new [] { 285.18364, 286.18423, 287.18678, 288.18757, 289.19042 }),
- new(115, "Mc", "Moscovium", 290, new [] { 287.1907, 288.19274, 289.19363, 290.19598, 291.19707 }),
- new(116, "Lv", "Livermorium", 293, new [] { 289.19816, 290.19864, 291.20108, 292.20174, 293.20449 }),
- new(117, "Ts", "Tennessine", 294, new [] { 291.20553, 292.20746, 293.20824, 294.21046 }),
- new(118, "Og", "Oganesson", 294, new [] { 293.21356, 294.21392, 295.21624 })
- };
- symbols = periodicTable.ToDictionary(ele => ele.Symbol);
- }
- }
-}
diff --git a/Chemistry/Chemistry/ChemistryExtensions.cs b/Chemistry/Chemistry/ChemistryExtensions.cs
deleted file mode 100644
index 7db9a929..00000000
--- a/Chemistry/Chemistry/ChemistryExtensions.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Trivial.Chemistry;
-
-///
-/// The helpers and extensions of chemistry.
-///
-public static class ChemistryExtensions
-{
- ///
- /// Gets or sets the max atomic number of periodic table; or -1 for unlimited.
- /// But this will not prevent creating a customized chemical element nor getting an existed from periodic table.
- ///
- public static int MaxAtomicNumber { get; set; } = -1;
-
- ///
- /// Adds molecular formula into a list.
- ///
- /// The molecular fomula collection.
- /// A molecular formula instance to add.
- /// The count of the value.
- /// Another optional molecular formula instance to add.
- /// The count of another.
- /// The optional third molecular formula instance to add
- /// The count of the third molecular formula instance to add.
- public static void Add(this ICollection formulas, MolecularFormula value, int count, MolecularFormula another = null, int countForAnother = 1, MolecularFormula other = null, int countForLast = 1)
- {
- if (formulas is null) return;
- if (value != null)
- {
- for (var i = 0; i < count; i++)
- {
- formulas.Add(value);
- }
- }
-
- if (another != null)
- {
- for (var i = 0; i < countForAnother; i++)
- {
- formulas.Add(another);
- }
- }
-
- if (other != null)
- {
- for (var i = 0; i < countForLast; i++)
- {
- formulas.Add(other);
- }
- }
- }
-
- ///
- /// Adds molecular formula into a list.
- ///
- /// The molecular fomula collection.
- /// A chemical element to add.
- /// The count of the value.
- public static void Add(this ICollection formulas, ChemicalElement value, int count = 1)
- {
- if (formulas is null) return;
- if (value != null && count > 0) formulas.Add(new MolecularFormula(value, count));
- }
-
- ///
- /// Filters all elements in the specific period.
- ///
- /// The source collection.
- /// The period.
- /// A collection after filter.
- public static IEnumerable PeriodElements(this IEnumerable source, int period)
- => (source ?? new List()).Where(ele => ele.Period == period);
-
- ///
- /// Gets a value indicating whether an element is radioelement.
- ///
- /// The element to test
- /// true if it is a radioelement; otherwise, false.
- public static bool IsRadioelement(this ChemicalElement element)
- {
- if (element is null) return false;
- return element.AtomicNumber >= 84 || element.AtomicNumber == 61 || element.AtomicNumber == 43;
- }
-
- ///
- /// Gets the electron configuration.
- ///
- /// The element to test
- /// A string that represents the electron configuation of the specific chemical element; or null, if not supported.
- public static string GetElectronConfigurationString(ChemicalElement element)
- {
- if (element is null || element.Period < 1 || element.Period > 7) return null;
- if (element.AtomicNumber > 105 && element.AtomicNumber < 113) return null;
- return element.Group switch
- {
- 1 => element.Period.ToString("g") + "s¹",
- 2 => element.Period.ToString("g") + "s²",
- 3 => element.IndexInPeriod switch
- {
- 2 => $"{element.Period - 1}d¹{element.Period}s²",
- 3 => element.AtomicNumber == 58 ? $"{element.Period - 2}f¹{element.Period - 1}d¹{element.Period}s²" : $"{element.Period - 1}d²{element.Period}s²",
- 4 => element.AtomicNumber == 59 ? $"{element.Period - 2}f³{element.Period}s²" : $"{element.Period - 2}f²{element.Period - 1}d¹{element.Period}s²",
- 5 => element.AtomicNumber == 60 ? $"{element.Period - 2}f⁴{element.Period}s²" : $"{element.Period - 2}f³{element.Period - 1}d¹{element.Period}s²",
- 6 => element.AtomicNumber == 61 ? $"{element.Period - 2}f⁵{element.Period}s²" : $"{element.Period - 2}f⁴{element.Period - 1}d¹{element.Period}s²",
- 7 => $"{element.Period - 2}f⁶{element.Period}s²",
- 8 => $"{element.Period - 2}f⁷{element.Period}s²",
- 9 => $"{element.Period - 2}f⁷{element.Period - 1}d¹{element.Period}s²",
- 10 => $"{element.Period - 2}f⁹{element.Period}s²",
- 11 => $"{element.Period - 2}f¹⁰{element.Period}s²",
- 12 => $"{element.Period - 2}f¹¹{element.Period}s²",
- 13 => $"{element.Period - 2}f¹²{element.Period}s²",
- 14 => $"{element.Period - 2}f¹³{element.Period}s²",
- 15 => $"{element.Period - 2}f¹⁴{element.Period}s²",
- 16 => $"{element.Period - 2}f¹⁴{element.Period - 1}d¹{element.Period}s²",
- _ => null
- },
- 4 => $"{element.Period - 1}d²{element.Period}s¹",
- 5 => element.AtomicNumber == 41 ? $"{element.Period - 1}d⁴{element.Period}s¹" : $"{element.Period - 1}d³{element.Period}s²",
- 6 => element.AtomicNumber == 74 ? $"{element.Period - 1}d⁴{element.Period}s²" : $"{element.Period - 1}d⁵{element.Period}s¹",
- 7 => $"{element.Period - 1}d⁵{element.Period}s²",
- 8 => element.AtomicNumber == 44 ? $"{element.Period - 1}d⁷{element.Period}s¹" : $"{element.Period - 1}d⁶{element.Period}s²",
- 9 => element.AtomicNumber == 45 ? $"{element.Period - 1}d⁸{element.Period}s¹" : $"{element.Period - 1}d⁷{element.Period}s²",
- 10 => element.AtomicNumber == 28 ? $"{element.Period - 1}d⁸{element.Period}s²" : (element.AtomicNumber == 46 ? $"{element.Period - 1}d¹⁰{element.Period}s¹" : $"{element.Period - 1}d⁹{element.Period}s¹"),
- 11 => $"{element.Period - 1}d¹⁰{element.Period}s¹",
- 12 => $"{element.Period - 1}d¹⁰{element.Period}s²",
- 13 => $"{element.Period}s²{element.Period}p¹",
- 14 => $"{element.Period}s²{element.Period}p²",
- 15 => $"{element.Period}s²{element.Period}p³",
- 16 => $"{element.Period}s²{element.Period}p⁴",
- 17 => $"{element.Period}s²{element.Period}p⁵",
- 18 => $"{element.Period}s²{element.Period}p⁶",
- _ => null
- };
- }
-}
diff --git a/Chemistry/Chemistry/ChemistryResource.Designer.cs b/Chemistry/Chemistry/ChemistryResource.Designer.cs
deleted file mode 100644
index 4282e9a2..00000000
--- a/Chemistry/Chemistry/ChemistryResource.Designer.cs
+++ /dev/null
@@ -1,1179 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-namespace Trivial.Chemistry {
- using System;
-
-
- ///
- /// 一个强类型的资源类,用于查找本地化的字符串等。
- ///
- // 此类是由 StronglyTypedResourceBuilder
- // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
- // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
- // (以 /str 作为命令选项),或重新生成 VS 项目。
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class ChemistryResource {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal ChemistryResource() {
- }
-
- ///
- /// 返回此类使用的缓存的 ResourceManager 实例。
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Trivial.Chemistry.ChemistryResource", typeof(ChemistryResource).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// 重写当前线程的 CurrentUICulture 属性,对
- /// 使用此强类型资源类的所有资源查找执行重写。
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// 查找类似 Chemical element 的本地化字符串。
- ///
- internal static string ChemicalElement {
- get {
- return ResourceManager.GetString("ChemicalElement", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Chemistry 的本地化字符串。
- ///
- internal static string Chemistry {
- get {
- return ResourceManager.GetString("Chemistry", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Element 的本地化字符串。
- ///
- internal static string Element {
- get {
- return ResourceManager.GetString("Element", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Hydrogen 的本地化字符串。
- ///
- internal static string Element001 {
- get {
- return ResourceManager.GetString("Element001", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Helium 的本地化字符串。
- ///
- internal static string Element002 {
- get {
- return ResourceManager.GetString("Element002", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Lithium 的本地化字符串。
- ///
- internal static string Element003 {
- get {
- return ResourceManager.GetString("Element003", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Beryllium 的本地化字符串。
- ///
- internal static string Element004 {
- get {
- return ResourceManager.GetString("Element004", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Boron 的本地化字符串。
- ///
- internal static string Element005 {
- get {
- return ResourceManager.GetString("Element005", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Carbon 的本地化字符串。
- ///
- internal static string Element006 {
- get {
- return ResourceManager.GetString("Element006", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Nitrogen 的本地化字符串。
- ///
- internal static string Element007 {
- get {
- return ResourceManager.GetString("Element007", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Oxygen 的本地化字符串。
- ///
- internal static string Element008 {
- get {
- return ResourceManager.GetString("Element008", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Fluorine 的本地化字符串。
- ///
- internal static string Element009 {
- get {
- return ResourceManager.GetString("Element009", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Neon 的本地化字符串。
- ///
- internal static string Element010 {
- get {
- return ResourceManager.GetString("Element010", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Sodium 的本地化字符串。
- ///
- internal static string Element011 {
- get {
- return ResourceManager.GetString("Element011", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Magnesium 的本地化字符串。
- ///
- internal static string Element012 {
- get {
- return ResourceManager.GetString("Element012", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Aluminium 的本地化字符串。
- ///
- internal static string Element013 {
- get {
- return ResourceManager.GetString("Element013", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Silicon 的本地化字符串。
- ///
- internal static string Element014 {
- get {
- return ResourceManager.GetString("Element014", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Phosphorus 的本地化字符串。
- ///
- internal static string Element015 {
- get {
- return ResourceManager.GetString("Element015", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Sulfur 的本地化字符串。
- ///
- internal static string Element016 {
- get {
- return ResourceManager.GetString("Element016", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Chlorine 的本地化字符串。
- ///
- internal static string Element017 {
- get {
- return ResourceManager.GetString("Element017", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Argon 的本地化字符串。
- ///
- internal static string Element018 {
- get {
- return ResourceManager.GetString("Element018", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Potassium 的本地化字符串。
- ///
- internal static string Element019 {
- get {
- return ResourceManager.GetString("Element019", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Calcium 的本地化字符串。
- ///
- internal static string Element020 {
- get {
- return ResourceManager.GetString("Element020", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Scandium 的本地化字符串。
- ///
- internal static string Element021 {
- get {
- return ResourceManager.GetString("Element021", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Titanium 的本地化字符串。
- ///
- internal static string Element022 {
- get {
- return ResourceManager.GetString("Element022", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Vanadium 的本地化字符串。
- ///
- internal static string Element023 {
- get {
- return ResourceManager.GetString("Element023", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Chromium 的本地化字符串。
- ///
- internal static string Element024 {
- get {
- return ResourceManager.GetString("Element024", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Manganese 的本地化字符串。
- ///
- internal static string Element025 {
- get {
- return ResourceManager.GetString("Element025", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Iron 的本地化字符串。
- ///
- internal static string Element026 {
- get {
- return ResourceManager.GetString("Element026", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Cobalt 的本地化字符串。
- ///
- internal static string Element027 {
- get {
- return ResourceManager.GetString("Element027", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Nickel 的本地化字符串。
- ///
- internal static string Element028 {
- get {
- return ResourceManager.GetString("Element028", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Copper 的本地化字符串。
- ///
- internal static string Element029 {
- get {
- return ResourceManager.GetString("Element029", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Zinc 的本地化字符串。
- ///
- internal static string Element030 {
- get {
- return ResourceManager.GetString("Element030", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Gallium 的本地化字符串。
- ///
- internal static string Element031 {
- get {
- return ResourceManager.GetString("Element031", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Germanium 的本地化字符串。
- ///
- internal static string Element032 {
- get {
- return ResourceManager.GetString("Element032", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Arsenic 的本地化字符串。
- ///
- internal static string Element033 {
- get {
- return ResourceManager.GetString("Element033", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Selenium 的本地化字符串。
- ///
- internal static string Element034 {
- get {
- return ResourceManager.GetString("Element034", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Bromine 的本地化字符串。
- ///
- internal static string Element035 {
- get {
- return ResourceManager.GetString("Element035", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Krypton 的本地化字符串。
- ///
- internal static string Element036 {
- get {
- return ResourceManager.GetString("Element036", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Rubidium 的本地化字符串。
- ///
- internal static string Element037 {
- get {
- return ResourceManager.GetString("Element037", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Strontium 的本地化字符串。
- ///
- internal static string Element038 {
- get {
- return ResourceManager.GetString("Element038", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Yttrium 的本地化字符串。
- ///
- internal static string Element039 {
- get {
- return ResourceManager.GetString("Element039", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Zirconium 的本地化字符串。
- ///
- internal static string Element040 {
- get {
- return ResourceManager.GetString("Element040", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Niobium 的本地化字符串。
- ///
- internal static string Element041 {
- get {
- return ResourceManager.GetString("Element041", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Molybdenum 的本地化字符串。
- ///
- internal static string Element042 {
- get {
- return ResourceManager.GetString("Element042", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Technetium 的本地化字符串。
- ///
- internal static string Element043 {
- get {
- return ResourceManager.GetString("Element043", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Ruthenium 的本地化字符串。
- ///
- internal static string Element044 {
- get {
- return ResourceManager.GetString("Element044", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Rhodium 的本地化字符串。
- ///
- internal static string Element045 {
- get {
- return ResourceManager.GetString("Element045", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Palladium 的本地化字符串。
- ///
- internal static string Element046 {
- get {
- return ResourceManager.GetString("Element046", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Silver 的本地化字符串。
- ///
- internal static string Element047 {
- get {
- return ResourceManager.GetString("Element047", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Cadmium 的本地化字符串。
- ///
- internal static string Element048 {
- get {
- return ResourceManager.GetString("Element048", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Indium 的本地化字符串。
- ///
- internal static string Element049 {
- get {
- return ResourceManager.GetString("Element049", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Tin 的本地化字符串。
- ///
- internal static string Element050 {
- get {
- return ResourceManager.GetString("Element050", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Antimony 的本地化字符串。
- ///
- internal static string Element051 {
- get {
- return ResourceManager.GetString("Element051", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Tellurium 的本地化字符串。
- ///
- internal static string Element052 {
- get {
- return ResourceManager.GetString("Element052", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Iodine 的本地化字符串。
- ///
- internal static string Element053 {
- get {
- return ResourceManager.GetString("Element053", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Xenon 的本地化字符串。
- ///
- internal static string Element054 {
- get {
- return ResourceManager.GetString("Element054", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Caesium 的本地化字符串。
- ///
- internal static string Element055 {
- get {
- return ResourceManager.GetString("Element055", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Barium 的本地化字符串。
- ///
- internal static string Element056 {
- get {
- return ResourceManager.GetString("Element056", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Lanthanum 的本地化字符串。
- ///
- internal static string Element057 {
- get {
- return ResourceManager.GetString("Element057", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Cerium 的本地化字符串。
- ///
- internal static string Element058 {
- get {
- return ResourceManager.GetString("Element058", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Praseodymium 的本地化字符串。
- ///
- internal static string Element059 {
- get {
- return ResourceManager.GetString("Element059", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Neodymium 的本地化字符串。
- ///
- internal static string Element060 {
- get {
- return ResourceManager.GetString("Element060", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Promethium 的本地化字符串。
- ///
- internal static string Element061 {
- get {
- return ResourceManager.GetString("Element061", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Samarium 的本地化字符串。
- ///
- internal static string Element062 {
- get {
- return ResourceManager.GetString("Element062", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Europium 的本地化字符串。
- ///
- internal static string Element063 {
- get {
- return ResourceManager.GetString("Element063", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Gadolinium 的本地化字符串。
- ///
- internal static string Element064 {
- get {
- return ResourceManager.GetString("Element064", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Terbium 的本地化字符串。
- ///
- internal static string Element065 {
- get {
- return ResourceManager.GetString("Element065", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Dysprosium 的本地化字符串。
- ///
- internal static string Element066 {
- get {
- return ResourceManager.GetString("Element066", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Holmium 的本地化字符串。
- ///
- internal static string Element067 {
- get {
- return ResourceManager.GetString("Element067", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Erbium 的本地化字符串。
- ///
- internal static string Element068 {
- get {
- return ResourceManager.GetString("Element068", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Thulium 的本地化字符串。
- ///
- internal static string Element069 {
- get {
- return ResourceManager.GetString("Element069", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Ytterbium 的本地化字符串。
- ///
- internal static string Element070 {
- get {
- return ResourceManager.GetString("Element070", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Lutetium 的本地化字符串。
- ///
- internal static string Element071 {
- get {
- return ResourceManager.GetString("Element071", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Hafnium 的本地化字符串。
- ///
- internal static string Element072 {
- get {
- return ResourceManager.GetString("Element072", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Tantalum 的本地化字符串。
- ///
- internal static string Element073 {
- get {
- return ResourceManager.GetString("Element073", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Tungsten 的本地化字符串。
- ///
- internal static string Element074 {
- get {
- return ResourceManager.GetString("Element074", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Rhenium 的本地化字符串。
- ///
- internal static string Element075 {
- get {
- return ResourceManager.GetString("Element075", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Osmium 的本地化字符串。
- ///
- internal static string Element076 {
- get {
- return ResourceManager.GetString("Element076", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Iridium 的本地化字符串。
- ///
- internal static string Element077 {
- get {
- return ResourceManager.GetString("Element077", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Platinum 的本地化字符串。
- ///
- internal static string Element078 {
- get {
- return ResourceManager.GetString("Element078", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Gold 的本地化字符串。
- ///
- internal static string Element079 {
- get {
- return ResourceManager.GetString("Element079", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Mercury 的本地化字符串。
- ///
- internal static string Element080 {
- get {
- return ResourceManager.GetString("Element080", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Thallium 的本地化字符串。
- ///
- internal static string Element081 {
- get {
- return ResourceManager.GetString("Element081", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Lead 的本地化字符串。
- ///
- internal static string Element082 {
- get {
- return ResourceManager.GetString("Element082", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Bismuth 的本地化字符串。
- ///
- internal static string Element083 {
- get {
- return ResourceManager.GetString("Element083", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Polonium 的本地化字符串。
- ///
- internal static string Element084 {
- get {
- return ResourceManager.GetString("Element084", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Astatine 的本地化字符串。
- ///
- internal static string Element085 {
- get {
- return ResourceManager.GetString("Element085", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Radon 的本地化字符串。
- ///
- internal static string Element086 {
- get {
- return ResourceManager.GetString("Element086", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Francium 的本地化字符串。
- ///
- internal static string Element087 {
- get {
- return ResourceManager.GetString("Element087", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Radium 的本地化字符串。
- ///
- internal static string Element088 {
- get {
- return ResourceManager.GetString("Element088", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Actinium 的本地化字符串。
- ///
- internal static string Element089 {
- get {
- return ResourceManager.GetString("Element089", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Thorium 的本地化字符串。
- ///
- internal static string Element090 {
- get {
- return ResourceManager.GetString("Element090", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Protactinium 的本地化字符串。
- ///
- internal static string Element091 {
- get {
- return ResourceManager.GetString("Element091", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Uranium 的本地化字符串。
- ///
- internal static string Element092 {
- get {
- return ResourceManager.GetString("Element092", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Neptunium 的本地化字符串。
- ///
- internal static string Element093 {
- get {
- return ResourceManager.GetString("Element093", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Plutonium 的本地化字符串。
- ///
- internal static string Element094 {
- get {
- return ResourceManager.GetString("Element094", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Americium 的本地化字符串。
- ///
- internal static string Element095 {
- get {
- return ResourceManager.GetString("Element095", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Curium 的本地化字符串。
- ///
- internal static string Element096 {
- get {
- return ResourceManager.GetString("Element096", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Berkelium 的本地化字符串。
- ///
- internal static string Element097 {
- get {
- return ResourceManager.GetString("Element097", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Californium 的本地化字符串。
- ///
- internal static string Element098 {
- get {
- return ResourceManager.GetString("Element098", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Einsteinium 的本地化字符串。
- ///
- internal static string Element099 {
- get {
- return ResourceManager.GetString("Element099", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Fermium 的本地化字符串。
- ///
- internal static string Element100 {
- get {
- return ResourceManager.GetString("Element100", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Mendelevium 的本地化字符串。
- ///
- internal static string Element101 {
- get {
- return ResourceManager.GetString("Element101", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Nobelium 的本地化字符串。
- ///
- internal static string Element102 {
- get {
- return ResourceManager.GetString("Element102", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Lawrencium 的本地化字符串。
- ///
- internal static string Element103 {
- get {
- return ResourceManager.GetString("Element103", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Rutherfordium 的本地化字符串。
- ///
- internal static string Element104 {
- get {
- return ResourceManager.GetString("Element104", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Dubnium 的本地化字符串。
- ///
- internal static string Element105 {
- get {
- return ResourceManager.GetString("Element105", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Seaborgium 的本地化字符串。
- ///
- internal static string Element106 {
- get {
- return ResourceManager.GetString("Element106", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Bohrium 的本地化字符串。
- ///
- internal static string Element107 {
- get {
- return ResourceManager.GetString("Element107", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Hassium 的本地化字符串。
- ///
- internal static string Element108 {
- get {
- return ResourceManager.GetString("Element108", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Meitnerium 的本地化字符串。
- ///
- internal static string Element109 {
- get {
- return ResourceManager.GetString("Element109", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Darmstadtium 的本地化字符串。
- ///
- internal static string Element110 {
- get {
- return ResourceManager.GetString("Element110", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Roentgenium 的本地化字符串。
- ///
- internal static string Element111 {
- get {
- return ResourceManager.GetString("Element111", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Copernicium 的本地化字符串。
- ///
- internal static string Element112 {
- get {
- return ResourceManager.GetString("Element112", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Nihonium 的本地化字符串。
- ///
- internal static string Element113 {
- get {
- return ResourceManager.GetString("Element113", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Flerovium 的本地化字符串。
- ///
- internal static string Element114 {
- get {
- return ResourceManager.GetString("Element114", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Moscovium 的本地化字符串。
- ///
- internal static string Element115 {
- get {
- return ResourceManager.GetString("Element115", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Livermorium 的本地化字符串。
- ///
- internal static string Element116 {
- get {
- return ResourceManager.GetString("Element116", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Tennessine 的本地化字符串。
- ///
- internal static string Element117 {
- get {
- return ResourceManager.GetString("Element117", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Oganesson 的本地化字符串。
- ///
- internal static string Element118 {
- get {
- return ResourceManager.GetString("Element118", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 的本地化字符串。
- ///
- internal static string ElementX {
- get {
- return ResourceManager.GetString("ElementX", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Isotope 的本地化字符串。
- ///
- internal static string Isotope {
- get {
- return ResourceManager.GetString("Isotope", resourceCulture);
- }
- }
-
- ///
- /// 查找类似 Isotopes 的本地化字符串。
- ///
- internal static string Isotopes {
- get {
- return ResourceManager.GetString("Isotopes", resourceCulture);
- }
- }
- }
-}
diff --git a/Chemistry/Chemistry/ChemistryResource.de.resx b/Chemistry/Chemistry/ChemistryResource.de.resx
deleted file mode 100644
index 74789616..00000000
--- a/Chemistry/Chemistry/ChemistryResource.de.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Chemisches element
-
-
- Chemie
-
-
- Elemente
-
-
- Wasserstoff
-
-
- Helium
-
-
- Lithium
-
-
- Beryllium
-
-
- Bor
-
-
- Kohlenstoff
-
-
- Stickstoff
-
-
- Sauerstoff
-
-
- Fluor
-
-
- Neon
-
-
- Natrium
-
-
- Magnesium
-
-
- Aluminium
-
-
- Silicium
-
-
- Phosphor
-
-
- Schwefel
-
-
- Chlor
-
-
- Argon
-
-
- Kalium
-
-
- Calcium
-
-
- Scandium
-
-
- Titan
-
-
- Vanadium
-
-
- Chrom
-
-
- Mangan
-
-
- Eisen
-
-
- Cobalt
-
-
- Nickel
-
-
- Kupfer
-
-
- Zink
-
-
- Gallium
-
-
- Germanium
-
-
- Arsen
-
-
- Selen
-
-
- Brom
-
-
- Krypton
-
-
- Rubidium
-
-
- Strontium
-
-
- Yttrium
-
-
- Zirconium
-
-
- Niob
-
-
- Molybdän
-
-
- Technetium
-
-
- Ruthenium
-
-
- Rhodium
-
-
- Palladium
-
-
- Silber
-
-
- Cadmium
-
-
- Indium
-
-
- Zinn
-
-
- Antimon
-
-
- Tellur
-
-
- Iod
-
-
- Xenon
-
-
- Caesium
-
-
- Barium
-
-
- Lanthan
-
-
- Cer
-
-
- Praseodym
-
-
- Neodym
-
-
- Promethium
-
-
- Samarium
-
-
- Europium
-
-
- Gadolinium
-
-
- Terbium
-
-
- Dysprosium
-
-
- Holmium
-
-
- Erbium
-
-
- Thulium
-
-
- Ytterbium
-
-
- Lutetium
-
-
- Hafnium
-
-
- Tantal
-
-
- Wolfram
-
-
- Rhenium
-
-
- Osmium
-
-
- Iridium
-
-
- Platin
-
-
- Gold
-
-
- Quecksilber
-
-
- Thallium
-
-
- Blei
-
-
- Bismut
-
-
- Polonium
-
-
- Astat
-
-
- Radon
-
-
- Francium
-
-
- Radium
-
-
- Actinium
-
-
- Thorium
-
-
- Protactinium
-
-
- Uran
-
-
- Neptunium
-
-
- Plutonium
-
-
- Americium
-
-
- Curium
-
-
- Berkelium
-
-
- Californium
-
-
- Einsteinium
-
-
- Fermium
-
-
- Mendelevium
-
-
- Nobelium
-
-
- Lawrencium
-
-
- Rutherfordium
-
-
- Dubnium
-
-
- Seaborgium
-
-
- Bohrium
-
-
- Hassium
-
-
- Meitnerium
-
-
- Darmstadtium
-
-
- Roentgenium
-
-
- Copernicium
-
-
- Nihonium
-
-
- Flerovium
-
-
- Moscovium
-
-
- Livermorium
-
-
- Tenness
-
-
- Oganesson
-
-
-
-
-
- Isotop
-
-
- Isotope
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.en.resx b/Chemistry/Chemistry/ChemistryResource.en.resx
deleted file mode 100644
index 0f90d5ab..00000000
--- a/Chemistry/Chemistry/ChemistryResource.en.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Chemical element
-
-
- Chemistry
-
-
- Element
-
-
- Hydrogen
-
-
- Helium
-
-
- Lithium
-
-
- Beryllium
-
-
- Boron
-
-
- Carbon
-
-
- Nitrogen
-
-
- Oxygen
-
-
- Fluorine
-
-
- Neon
-
-
- Sodium
-
-
- Magnesium
-
-
- Aluminium
-
-
- Silicon
-
-
- Phosphorus
-
-
- Sulfur
-
-
- Chlorine
-
-
- Argon
-
-
- Potassium
-
-
- Calcium
-
-
- Scandium
-
-
- Titanium
-
-
- Vanadium
-
-
- Chromium
-
-
- Manganese
-
-
- Iron
-
-
- Cobalt
-
-
- Nickel
-
-
- Copper
-
-
- Zinc
-
-
- Gallium
-
-
- Germanium
-
-
- Arsenic
-
-
- Selenium
-
-
- Bromine
-
-
- Krypton
-
-
- Rubidium
-
-
- Strontium
-
-
- Yttrium
-
-
- Zirconium
-
-
- Niobium
-
-
- Molybdenum
-
-
- Technetium
-
-
- Ruthenium
-
-
- Rhodium
-
-
- Palladium
-
-
- Silver
-
-
- Cadmium
-
-
- Indium
-
-
- Tin
-
-
- Antimony
-
-
- Tellurium
-
-
- Iodine
-
-
- Xenon
-
-
- Caesium
-
-
- Barium
-
-
- Lanthanum
-
-
- Cerium
-
-
- Praseodymium
-
-
- Neodymium
-
-
- Promethium
-
-
- Samarium
-
-
- Europium
-
-
- Gadolinium
-
-
- Terbium
-
-
- Dysprosium
-
-
- Holmium
-
-
- Erbium
-
-
- Thulium
-
-
- Ytterbium
-
-
- Lutetium
-
-
- Hafnium
-
-
- Tantalum
-
-
- Tungsten
-
-
- Rhenium
-
-
- Osmium
-
-
- Iridium
-
-
- Platinum
-
-
- Gold
-
-
- Mercury
-
-
- Thallium
-
-
- Lead
-
-
- Bismuth
-
-
- Polonium
-
-
- Astatine
-
-
- Radon
-
-
- Francium
-
-
- Radium
-
-
- Actinium
-
-
- Thorium
-
-
- Protactinium
-
-
- Uranium
-
-
- Neptunium
-
-
- Plutonium
-
-
- Americium
-
-
- Curium
-
-
- Berkelium
-
-
- Californium
-
-
- Einsteinium
-
-
- Fermium
-
-
- Mendelevium
-
-
- Nobelium
-
-
- Lawrencium
-
-
- Rutherfordium
-
-
- Dubnium
-
-
- Seaborgium
-
-
- Bohrium
-
-
- Hassium
-
-
- Meitnerium
-
-
- Darmstadtium
-
-
- Roentgenium
-
-
- Copernicium
-
-
- Nihonium
-
-
- Flerovium
-
-
- Moscovium
-
-
- Livermorium
-
-
- Tennessine
-
-
- Oganesson
-
-
-
-
-
- Isotope
-
-
- Isotopes
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.es.resx b/Chemistry/Chemistry/ChemistryResource.es.resx
deleted file mode 100644
index c60ac137..00000000
--- a/Chemistry/Chemistry/ChemistryResource.es.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Elemento químico
-
-
- Química
-
-
- Elemento
-
-
- Hidrógeno
-
-
- Helio
-
-
- Litio
-
-
- Berilio
-
-
- Boro
-
-
- Carbono
-
-
- Nitrógeno
-
-
- Oxígeno
-
-
- Flúor
-
-
- Neón
-
-
- Sodio
-
-
- Magnesio
-
-
- Aluminio
-
-
- Silicio
-
-
- Fósforo
-
-
- Azufre
-
-
- Cloro
-
-
- Argón
-
-
- Potasio
-
-
- Calcio
-
-
- Escandio
-
-
- Titanio
-
-
- Vanadio
-
-
- Cromo
-
-
- Manganeso
-
-
- Hierro
-
-
- Cobalto
-
-
- Níquel
-
-
- Cobre
-
-
- Zinc
-
-
- Galio
-
-
- Germanio
-
-
- Arsénico
-
-
- Selenio
-
-
- Bromo
-
-
- Kriptón
-
-
- Rubidio
-
-
- Estroncio
-
-
- Itrio
-
-
- Zirconio
-
-
- Niobio
-
-
- Molibdeno
-
-
- Tecnecio
-
-
- Rutenio
-
-
- Rodio
-
-
- Paladio
-
-
- Plata
-
-
- Cadmio
-
-
- Indio
-
-
- Estaño
-
-
- Antimonio
-
-
- Teluro
-
-
- Yodo
-
-
- Xenón
-
-
- Cesio
-
-
- Bario
-
-
- Lantano
-
-
- Cerio
-
-
- Praseodimio
-
-
- Neodimio
-
-
- Prometio
-
-
- Samario
-
-
- Europio
-
-
- Gadolinio
-
-
- Terbio
-
-
- Disprosio
-
-
- Holmio
-
-
- Erbio
-
-
- Tulio
-
-
- Iterbio
-
-
- Lutecio
-
-
- Hafnio
-
-
- Tantalio
-
-
- Wolframio
-
-
- Renio
-
-
- Osmio
-
-
- Iridio
-
-
- Platino
-
-
- Oro
-
-
- Mercurio
-
-
- Talio
-
-
- Plomo
-
-
- Bismuto
-
-
- Polonio
-
-
- Astato
-
-
- Radón
-
-
- Francio
-
-
- Radio
-
-
- Actinio
-
-
- Torio
-
-
- Protactinio
-
-
- Uranio
-
-
- Neptunio
-
-
- Plutonio
-
-
- Americio
-
-
- Curio
-
-
- Berkelio
-
-
- Californio
-
-
- Einstenio
-
-
- Fermio
-
-
- Mendelevio
-
-
- Nobelio
-
-
- Laurencio
-
-
- Rutherfordio
-
-
- Dubnio
-
-
- Seaborgio
-
-
- Bohrio
-
-
- Hassio
-
-
- Meitnerio
-
-
- Darmstatio
-
-
- Roentgenio
-
-
- Copernicio
-
-
- Nihonio
-
-
- Flerovio
-
-
- Moscovio
-
-
- Livermorio
-
-
- Teneso
-
-
- Oganesón
-
-
- Elemento {0}
-
-
- Isótopo
-
-
- Isótopos
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.fr.resx b/Chemistry/Chemistry/ChemistryResource.fr.resx
deleted file mode 100644
index 62ac2116..00000000
--- a/Chemistry/Chemistry/ChemistryResource.fr.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Élément chimique
-
-
- Chimie
-
-
- Élément
-
-
- Hydrogène
-
-
- Hélium
-
-
- Lithium
-
-
- Béryllium
-
-
- Bore
-
-
- Carbone
-
-
- Azote
-
-
- Oxygène
-
-
- Fluor
-
-
- Néon
-
-
- Sodium
-
-
- Magnésium
-
-
- Aluminium
-
-
- Silicium
-
-
- Phosphore
-
-
- Soufre
-
-
- Chlore
-
-
- Argon
-
-
- Potassium
-
-
- Calcium
-
-
- Scandium
-
-
- Titane
-
-
- Vanadium
-
-
- Chrome
-
-
- Manganèse
-
-
- Fer
-
-
- Cobalt
-
-
- Nickel
-
-
- Cuivre
-
-
- Zinc
-
-
- Gallium
-
-
- Germanium
-
-
- Arsenic
-
-
- Sélénium
-
-
- Brome
-
-
- Krypton
-
-
- Rubidium
-
-
- Strontium
-
-
- Yttrium
-
-
- Zirconium
-
-
- Niobium
-
-
- Molybdène
-
-
- Technétium
-
-
- Ruthénium
-
-
- Rhodium
-
-
- Palladium
-
-
- Argent
-
-
- Cadmium
-
-
- Indium
-
-
- Étain
-
-
- Antimoine
-
-
- Tellure
-
-
- Iode
-
-
- Xénon
-
-
- Césium
-
-
- Baryum
-
-
- Lanthane
-
-
- Cérium
-
-
- Praséodyme
-
-
- Néodyme
-
-
- Prométhium
-
-
- Samarium
-
-
- Europium
-
-
- Gadolinium
-
-
- Terbium
-
-
- Dysprosium
-
-
- Holmium
-
-
- Erbium
-
-
- Thulium
-
-
- Ytterbium
-
-
- Lutécium
-
-
- Hafnium
-
-
- Tantale
-
-
- Tungstène
-
-
- Rhénium
-
-
- Osmium
-
-
- Iridium
-
-
- Platine
-
-
- Or
-
-
- Mercure
-
-
- Thallium
-
-
- Plomb
-
-
- Bismuth
-
-
- Polonium
-
-
- Astate
-
-
- Radon
-
-
- Francium
-
-
- Radium
-
-
- Actinium
-
-
- Thorium
-
-
- Protactinium
-
-
- Uranium
-
-
- Neptunium
-
-
- Plutonium
-
-
- Américium
-
-
- Curium
-
-
- Berkélium
-
-
- Californium
-
-
- Einsteinium
-
-
- Fermium
-
-
- Mendélévium
-
-
- Nobélium
-
-
- Lawrencium
-
-
- Rutherfordium
-
-
- Dubnium
-
-
- Seaborgium
-
-
- Bohrium
-
-
- Hassium
-
-
- Meitnérium
-
-
- Darmstadtium
-
-
- Roentgenium
-
-
- Copernicium
-
-
- Nihonium
-
-
- Flérovium
-
-
- Moscovium
-
-
- Livermorium
-
-
- Tennesse
-
-
- Oganesson
-
-
-
-
-
- Isotope
-
-
- Isotopes
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.it.resx b/Chemistry/Chemistry/ChemistryResource.it.resx
deleted file mode 100644
index 74fea946..00000000
--- a/Chemistry/Chemistry/ChemistryResource.it.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Elemento chimico
-
-
- Chimica
-
-
- Elemento
-
-
- Idrogeno
-
-
- Elio
-
-
- Litio
-
-
- Berillio
-
-
- Boro
-
-
- Carbonio
-
-
- Azoto
-
-
- Ossigeno
-
-
- Fluoro
-
-
- Neon
-
-
- Sodio
-
-
- Magnesio
-
-
- Alluminio
-
-
- Silicio
-
-
- Fosforo
-
-
- Zolfo
-
-
- Cloro
-
-
- Argon
-
-
- Potassio
-
-
- Calcio
-
-
- Scandio
-
-
- Titanio
-
-
- Vanadio
-
-
- Cromo
-
-
- Manganese
-
-
- Ferro
-
-
- Cobalto
-
-
- Nichel
-
-
- Rame
-
-
- Zinco
-
-
- Gallio
-
-
- Germanio
-
-
- Arsenico
-
-
- Selenio
-
-
- Bromo
-
-
- Kripton
-
-
- Rubidio
-
-
- Stronzio
-
-
- Ittrio
-
-
- Zirconio
-
-
- Niobio
-
-
- Molibdeno
-
-
- Tecnezio
-
-
- Rutenio
-
-
- Rodio
-
-
- Palladio
-
-
- Argento
-
-
- Cadmio
-
-
- Indio
-
-
- Stagno
-
-
- Antimonio
-
-
- Tellurio
-
-
- Iodio
-
-
- Xenon
-
-
- Cesio
-
-
- Bario
-
-
- Lantanio
-
-
- Cerio
-
-
- Praseodimio
-
-
- Neodimio
-
-
- Promezio
-
-
- Samario
-
-
- Europio
-
-
- Gadolinio
-
-
- Terbio
-
-
- Disprosio
-
-
- Olmio
-
-
- Erbio
-
-
- Tulio
-
-
- Itterbio
-
-
- Lutezio
-
-
- Afnio
-
-
- Tantalio
-
-
- Tungsteno
-
-
- Renio
-
-
- Osmio
-
-
- Iridio
-
-
- Platino
-
-
- Oro
-
-
- Mercurio
-
-
- Tallio
-
-
- Piombo
-
-
- Bismuto
-
-
- Polonio
-
-
- Astato
-
-
- Radon
-
-
- Francio
-
-
- Radio
-
-
- Attinio
-
-
- Torio
-
-
- Protoattinio
-
-
- Uranio
-
-
- Nettunio
-
-
- Plutonio
-
-
- Americio
-
-
- Curio
-
-
- Berkelio
-
-
- Californio
-
-
- Einsteinio
-
-
- Fermio
-
-
- Mendelevio
-
-
- Nobelio
-
-
- Laurenzio
-
-
- Rutherfordio
-
-
- Dubnio
-
-
- Seaborgio
-
-
- Bohrio
-
-
- Hassio
-
-
- Meitnerio
-
-
- Darmstadtio
-
-
- Roentgenio
-
-
- Copernicio
-
-
- Nihonio
-
-
- Flerovio
-
-
- Moscovio
-
-
- Livermorio
-
-
- Tennesso
-
-
- Oganesson
-
-
- Elemento {0}
-
-
- Isotopo
-
-
- Isotopi
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.ja.resx b/Chemistry/Chemistry/ChemistryResource.ja.resx
deleted file mode 100644
index f6f8213b..00000000
--- a/Chemistry/Chemistry/ChemistryResource.ja.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 元素
-
-
- 化学
-
-
- 元素
-
-
- 水素
-
-
- ヘリウム
-
-
- リチウム
-
-
- ベリリウム
-
-
- ホウ素
-
-
- 炭素
-
-
- 窒素
-
-
- 酸素
-
-
- フッ素
-
-
- ネオン
-
-
- ナトリウム
-
-
- マグネシウム
-
-
- アルミニウム
-
-
- ケイ素
-
-
- 燐
-
-
- 硫黄
-
-
- 塩素
-
-
- アルゴン
-
-
- カリウム
-
-
- カルシウム
-
-
- スカンジウム
-
-
- チタン
-
-
- バナジウム
-
-
- クロム
-
-
- マンガン
-
-
- 鉄
-
-
- コバルト
-
-
- ニッケル
-
-
- 銅
-
-
- 亜鉛
-
-
- ガリウム
-
-
- ゲルマニウム
-
-
- ヒ素
-
-
- セレン
-
-
- 臭素
-
-
- クリプトン
-
-
- ルビジウム
-
-
- ストロンチウム
-
-
- イットリウム
-
-
- ジルコニウム
-
-
- ニオブ
-
-
- モリブデン
-
-
- テクネチウム
-
-
- ルテニウム
-
-
- ロジウム
-
-
- パラジウム
-
-
- 銀
-
-
- カドミウム
-
-
- インジウム
-
-
- 錫
-
-
- アンチモン
-
-
- テルル
-
-
- ヨウ素
-
-
- キセノン
-
-
- セシウム
-
-
- バリウム
-
-
- ランタン
-
-
- セリウム
-
-
- プラセオジム
-
-
- ネオジム
-
-
- プロメチウム
-
-
- サマリウム
-
-
- ユウロピウム
-
-
- ガドリニウム
-
-
- テルビウム
-
-
- ジスプロシウム
-
-
- ホルミウム
-
-
- エルビウム
-
-
- ツリウム
-
-
- イッテルビウム
-
-
- ルテチウム
-
-
- ハフニウム
-
-
- タンタル
-
-
- タングステン
-
-
- レニウム
-
-
- オスミウム
-
-
- イリジウム
-
-
- 白金
-
-
- 金
-
-
- 水銀
-
-
- タリウム
-
-
- 鉛
-
-
- ビスマス
-
-
- ポロニウム
-
-
- アスタチン
-
-
- ラドン
-
-
- フランシウム
-
-
- ラジウム
-
-
- アクチニウム
-
-
- トリウム
-
-
- プロトアクチニウム
-
-
- ウラン
-
-
- ネプツニウム
-
-
- プルトニウム
-
-
- アメリシウム
-
-
- キュリウム
-
-
- バークリウム
-
-
- カリホルニウム
-
-
- アインスタイニウム
-
-
- フェルミウム
-
-
- メンデレビウム
-
-
- ノーベリウム
-
-
- ローレンシウム
-
-
- ラザホージウム
-
-
- ドブニウム
-
-
- シーボーギウム
-
-
- ボーリウム
-
-
- ハッシウム
-
-
- マイトネリウム
-
-
- ダームスタチウム
-
-
- レントゲニウム
-
-
- コペルニシウム
-
-
- ニホニウム
-
-
- フレロビウム
-
-
- モスコビウム
-
-
- リバモリウム
-
-
- テネシン
-
-
- オガネソン
-
-
- 番号{0}
-
-
- 同位体
-
-
- 同位体
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.ko.resx b/Chemistry/Chemistry/ChemistryResource.ko.resx
deleted file mode 100644
index 64b2960e..00000000
--- a/Chemistry/Chemistry/ChemistryResource.ko.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 원소
-
-
- 화학
-
-
- 원소
-
-
- 수소
-
-
- 헬륨
-
-
- 리튬
-
-
- 베릴륨
-
-
- 붕소
-
-
- 탄소
-
-
- 질소
-
-
- 산소
-
-
- 플루오린
-
-
- 네온
-
-
- 나트륨
-
-
- 마그네슘
-
-
- 알루미늄
-
-
- 규소
-
-
- 인
-
-
- 황
-
-
- 염소
-
-
- 아르곤
-
-
- 칼륨
-
-
- 칼슘
-
-
- 스칸듐
-
-
- 티타늄
-
-
- 바나듐
-
-
- 크롬
-
-
- 망가니즈
-
-
- 철
-
-
- 코발트
-
-
- 니켈
-
-
- 구리
-
-
- 아연
-
-
- 갈륨
-
-
- 게르마늄
-
-
- 비소
-
-
- 셀레늄
-
-
- 브로민
-
-
- 크립톤
-
-
- 루비듐
-
-
- 스트론튬
-
-
- 이트륨
-
-
- 지르코늄
-
-
- 나이오븀
-
-
- 몰리브데넘
-
-
- 테크네튬
-
-
- 루테늄
-
-
- 로듐
-
-
- 팔라듐
-
-
- 은
-
-
- 카드뮴
-
-
- 인듐
-
-
- 주석
-
-
- 안티모니
-
-
- 텔루륨
-
-
- 아이오딘
-
-
- 제논
-
-
- 세슘
-
-
- 바륨
-
-
- 란타넘
-
-
- 세륨
-
-
- 프라세오디뮴
-
-
- 네오디뮴
-
-
- 프로메튬
-
-
- 사마륨
-
-
- 유로퓸
-
-
- 가돌리늄
-
-
- 터븀
-
-
- 디스프로슘
-
-
- 홀뮴
-
-
- 어븀
-
-
- 툴륨
-
-
- 이터븀
-
-
- 루테튬
-
-
- 하프늄
-
-
- 탄탈럼
-
-
- 텅스텐
-
-
- 레늄
-
-
- 오스뮴
-
-
- 이리듐
-
-
- 백금
-
-
- 금
-
-
- 수은
-
-
- 탈륨
-
-
- 납
-
-
- 비스무트
-
-
- 폴로늄
-
-
- 아스타틴
-
-
- 라돈
-
-
- 프랑슘
-
-
- 라듐
-
-
- 악티늄
-
-
- 토륨
-
-
- 프로트악티늄
-
-
- 우라늄
-
-
- 넵투늄
-
-
- 플루토늄
-
-
- 아메리슘
-
-
- 퀴륨
-
-
- 버클륨
-
-
- 캘리포늄
-
-
- 아인슈타이늄
-
-
- 페르뮴
-
-
- 멘델레븀
-
-
- 노벨륨
-
-
- 로렌슘
-
-
- 러더포듐
-
-
- 더브늄
-
-
- 시보귬
-
-
- 보륨
-
-
- 하슘
-
-
- 마이트너륨
-
-
- 다름슈타튬
-
-
- 뢴트게늄
-
-
- 코페르니슘
-
-
- 니호늄
-
-
- 플레로븀
-
-
- 모스코븀
-
-
- 리버모륨
-
-
- 테네신
-
-
- 오가네손
-
-
- 원소{0}
-
-
- 동위 원소
-
-
- 동위 원소
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.pt.resx b/Chemistry/Chemistry/ChemistryResource.pt.resx
deleted file mode 100644
index 64472515..00000000
--- a/Chemistry/Chemistry/ChemistryResource.pt.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Elemento químico
-
-
- Química
-
-
- Elemento
-
-
- Hidrogênio
-
-
- Hélio
-
-
- Lítio
-
-
- Berílio
-
-
- Boro
-
-
- Carbono
-
-
- Nitrogênio
-
-
- Oxigênio
-
-
- Flúor
-
-
- Neônio
-
-
- Sódio
-
-
- Magnésio
-
-
- Alumínio
-
-
- Silício
-
-
- Fósforo
-
-
- Enxofre
-
-
- Cloro
-
-
- Argônio
-
-
- Potássio
-
-
- Cálcio
-
-
- Escândio
-
-
- Titânio
-
-
- Vanádio
-
-
- Cromo
-
-
- Manganês
-
-
- Ferro
-
-
- Cobalto
-
-
- Níquel
-
-
- Cobre
-
-
- Zinco
-
-
- Gálio
-
-
- Germânio
-
-
- Arsénio
-
-
- Selénio
-
-
- Bromo
-
-
- Criptônio
-
-
- Rubídio
-
-
- Estrôncio
-
-
- Ítrio
-
-
- Zircônio
-
-
- Nióbio
-
-
- Molibdénio
-
-
- Tecnécio
-
-
- Rutênio
-
-
- Ródio
-
-
- Paládio
-
-
- Prata
-
-
- Cádmio
-
-
- Índio
-
-
- Estanho
-
-
- Antimônio
-
-
- Telúrio
-
-
- Iodo
-
-
- Xenônio
-
-
- Césio
-
-
- Bário
-
-
- Lantânio
-
-
- Cério
-
-
- Praseodímio
-
-
- Neodímio
-
-
- Promécio
-
-
- Samário
-
-
- Európio
-
-
- Gadolínio
-
-
- Térbio
-
-
- Disprósio
-
-
- Hólmio
-
-
- Érbio
-
-
- Túlio
-
-
- Itérbio
-
-
- Lutécio
-
-
- Háfnio
-
-
- Tântalo
-
-
- Tungstênio
-
-
- Rênio
-
-
- Ósmio
-
-
- Irídio
-
-
- Platina
-
-
- Ouro
-
-
- Mercúrio
-
-
- Tálio
-
-
- Chumbo
-
-
- Bismuto
-
-
- Polônio
-
-
- Ástato
-
-
- Rádon
-
-
- Frâncio
-
-
- Rádio
-
-
- Actínio
-
-
- Tório
-
-
- Protactínio
-
-
- Urânio
-
-
- Ne(p)túnio
-
-
- Plutônio
-
-
- Amerício
-
-
- Cúrio
-
-
- Berquélio
-
-
- Califórnio
-
-
- Einsténio
-
-
- Férmio
-
-
- Mendelévio
-
-
- Nobélio
-
-
- Laurêncio
-
-
- Rutherfórdio
-
-
- Dúbnio
-
-
- Seabórgio
-
-
- Bóhrio
-
-
- Hássio
-
-
- Meitnério
-
-
- Darmstácio
-
-
- Roentgénio
-
-
- Copernício
-
-
- Nipônio
-
-
- Fleróvio
-
-
- Moscóvio
-
-
- Livermório
-
-
- Tenesso
-
-
- Oganésson
-
-
- Elemento {0}
-
-
- Isótopo
-
-
- Isótopos
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.resx b/Chemistry/Chemistry/ChemistryResource.resx
deleted file mode 100644
index 0f90d5ab..00000000
--- a/Chemistry/Chemistry/ChemistryResource.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Chemical element
-
-
- Chemistry
-
-
- Element
-
-
- Hydrogen
-
-
- Helium
-
-
- Lithium
-
-
- Beryllium
-
-
- Boron
-
-
- Carbon
-
-
- Nitrogen
-
-
- Oxygen
-
-
- Fluorine
-
-
- Neon
-
-
- Sodium
-
-
- Magnesium
-
-
- Aluminium
-
-
- Silicon
-
-
- Phosphorus
-
-
- Sulfur
-
-
- Chlorine
-
-
- Argon
-
-
- Potassium
-
-
- Calcium
-
-
- Scandium
-
-
- Titanium
-
-
- Vanadium
-
-
- Chromium
-
-
- Manganese
-
-
- Iron
-
-
- Cobalt
-
-
- Nickel
-
-
- Copper
-
-
- Zinc
-
-
- Gallium
-
-
- Germanium
-
-
- Arsenic
-
-
- Selenium
-
-
- Bromine
-
-
- Krypton
-
-
- Rubidium
-
-
- Strontium
-
-
- Yttrium
-
-
- Zirconium
-
-
- Niobium
-
-
- Molybdenum
-
-
- Technetium
-
-
- Ruthenium
-
-
- Rhodium
-
-
- Palladium
-
-
- Silver
-
-
- Cadmium
-
-
- Indium
-
-
- Tin
-
-
- Antimony
-
-
- Tellurium
-
-
- Iodine
-
-
- Xenon
-
-
- Caesium
-
-
- Barium
-
-
- Lanthanum
-
-
- Cerium
-
-
- Praseodymium
-
-
- Neodymium
-
-
- Promethium
-
-
- Samarium
-
-
- Europium
-
-
- Gadolinium
-
-
- Terbium
-
-
- Dysprosium
-
-
- Holmium
-
-
- Erbium
-
-
- Thulium
-
-
- Ytterbium
-
-
- Lutetium
-
-
- Hafnium
-
-
- Tantalum
-
-
- Tungsten
-
-
- Rhenium
-
-
- Osmium
-
-
- Iridium
-
-
- Platinum
-
-
- Gold
-
-
- Mercury
-
-
- Thallium
-
-
- Lead
-
-
- Bismuth
-
-
- Polonium
-
-
- Astatine
-
-
- Radon
-
-
- Francium
-
-
- Radium
-
-
- Actinium
-
-
- Thorium
-
-
- Protactinium
-
-
- Uranium
-
-
- Neptunium
-
-
- Plutonium
-
-
- Americium
-
-
- Curium
-
-
- Berkelium
-
-
- Californium
-
-
- Einsteinium
-
-
- Fermium
-
-
- Mendelevium
-
-
- Nobelium
-
-
- Lawrencium
-
-
- Rutherfordium
-
-
- Dubnium
-
-
- Seaborgium
-
-
- Bohrium
-
-
- Hassium
-
-
- Meitnerium
-
-
- Darmstadtium
-
-
- Roentgenium
-
-
- Copernicium
-
-
- Nihonium
-
-
- Flerovium
-
-
- Moscovium
-
-
- Livermorium
-
-
- Tennessine
-
-
- Oganesson
-
-
-
-
-
- Isotope
-
-
- Isotopes
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.ru.resx b/Chemistry/Chemistry/ChemistryResource.ru.resx
deleted file mode 100644
index 29c95124..00000000
--- a/Chemistry/Chemistry/ChemistryResource.ru.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Химический элемент
-
-
- Химия
-
-
- Элемент
-
-
- Водород
-
-
- Гелий
-
-
- Литий
-
-
- Бериллий
-
-
- Бор
-
-
- Углерод
-
-
- Азот
-
-
- Кислород
-
-
- Фтор
-
-
- Неон
-
-
- Натрий
-
-
- Магний
-
-
- Алюминий
-
-
- Кремний
-
-
- Фосфор
-
-
- Сера
-
-
- Хлор
-
-
- Аргон
-
-
- Калий
-
-
- Кальций
-
-
- Скандий
-
-
- Титан
-
-
- Ванадий
-
-
- Хром
-
-
- Марганец
-
-
- Железо
-
-
- Кобальт
-
-
- Никель
-
-
- Медь
-
-
- Цинк
-
-
- Галлий
-
-
- Германий
-
-
- Мышьяк
-
-
- Селен
-
-
- Бром
-
-
- Криптон
-
-
- Рубидий
-
-
- Стронций
-
-
- Иттрий
-
-
- Цирконий
-
-
- Ниобий
-
-
- Молибден
-
-
- Технеций
-
-
- Рутений
-
-
- Родий
-
-
- Палладий
-
-
- Серебро
-
-
- Кадмий
-
-
- Индий
-
-
- Олово
-
-
- Сурьма
-
-
- Теллур
-
-
- Иод
-
-
- Ксенон
-
-
- Цезий
-
-
- Барий
-
-
- Лантан
-
-
- Церий
-
-
- Празеодим
-
-
- Неодим
-
-
- Прометий
-
-
- Самарий
-
-
- Европий
-
-
- Гадолиний
-
-
- Тербий
-
-
- Диспрозий
-
-
- Гольмий
-
-
- Эрбий
-
-
- Тулий
-
-
- Иттербий
-
-
- Лютеций
-
-
- Гафний
-
-
- Тантал
-
-
- Вольфрам
-
-
- Рений
-
-
- Осмий
-
-
- Иридий
-
-
- Платина
-
-
- Золото
-
-
- Ртуть
-
-
- Таллий
-
-
- Свинец
-
-
- Висмут
-
-
- Полоний
-
-
- Астат
-
-
- Радон
-
-
- Франций
-
-
- Радий
-
-
- Актиний
-
-
- Торий
-
-
- Протактиний
-
-
- Уран
-
-
- Нептуний
-
-
- Плутоний
-
-
- Америций
-
-
- Кюрий
-
-
- Берклий
-
-
- Калифорний
-
-
- Эйнштейний
-
-
- Фермий
-
-
- Менделевий
-
-
- Нобелий
-
-
- Лоуренсий
-
-
- Резерфордий
-
-
- Дубний
-
-
- Сиборгий
-
-
- Борий
-
-
- Хассий
-
-
- Мейтнерий
-
-
- Дармштадтий
-
-
- Рентгений
-
-
- Коперниций
-
-
- Нихоний
-
-
- Флеровий
-
-
- Московий
-
-
- Ливерморий
-
-
- Теннессин
-
-
- Оганесон
-
-
- Элемент {0}
-
-
- Изотоп
-
-
- Изотопы
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.tr.resx b/Chemistry/Chemistry/ChemistryResource.tr.resx
deleted file mode 100644
index d4eca6dc..00000000
--- a/Chemistry/Chemistry/ChemistryResource.tr.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Kimyasal element
-
-
- Kimya
-
-
- Element
-
-
- Hidrojen
-
-
- Helyum
-
-
- Lityum
-
-
- Berilyum
-
-
- Bor
-
-
- Karbon
-
-
- Azot
-
-
- Oksijen
-
-
- Flor
-
-
- Neon
-
-
- Sodyum
-
-
- Magnezyum
-
-
- Alüminyum
-
-
- Silisyum
-
-
- Fosfor
-
-
- Kükürt
-
-
- Klor
-
-
- Argon
-
-
- Potasyum
-
-
- Kalsiyum
-
-
- Skandiyum
-
-
- Titanyum
-
-
- Vanadyum
-
-
- Krom
-
-
- Mangan
-
-
- Demir
-
-
- Kobalt
-
-
- Nikel
-
-
- Bakır
-
-
- Çinko
-
-
- Galyum
-
-
- Germanyum
-
-
- Arsenik
-
-
- Selenyum
-
-
- Brom
-
-
- Kripton
-
-
- Rubidyum
-
-
- Stronsiyum
-
-
- İtriyum
-
-
- Zirkonyum
-
-
- Niobyum
-
-
- Molibden
-
-
- Teknesyum
-
-
- Rutenyum
-
-
- Rodyum
-
-
- Paladyum
-
-
- Gümüş
-
-
- Kadmiyum
-
-
- İndiyum
-
-
- Kalay
-
-
- Antimon
-
-
- Tellür
-
-
- İyot
-
-
- Ksenon
-
-
- Sezyum
-
-
- Baryum
-
-
- Lantan
-
-
- Seryum
-
-
- Praseodim
-
-
- Neodimyum
-
-
- Prometyum
-
-
- Samaryum
-
-
- Evropiyum
-
-
- Gadolinyum
-
-
- Terbiyum
-
-
- Disprozyum
-
-
- Holmiyum
-
-
- Erbiyum
-
-
- Tulyum
-
-
- İterbiyum
-
-
- Lutetyum
-
-
- Hafniyum
-
-
- Tantal
-
-
- Volfram
-
-
- Renyum
-
-
- Osmiyum
-
-
- İridyum
-
-
- Platin
-
-
- Altın
-
-
- Cıva
-
-
- Talyum
-
-
- Kurşun
-
-
- Bizmut
-
-
- Polonyum
-
-
- Astatin
-
-
- Radon
-
-
- Fransiyum
-
-
- Radyum
-
-
- Aktinyum
-
-
- Toryum
-
-
- Protaktinyum
-
-
- Uranyum
-
-
- Neptünyum
-
-
- Plütonyum
-
-
- Amerikyum
-
-
- Küriyum
-
-
- Berkelyum
-
-
- Kaliforniyum
-
-
- Aynştaynyum
-
-
- Fermiyum
-
-
- Mendelevyum
-
-
- Nobelyum
-
-
- Lavrensiyum
-
-
- Rutherfordiyum
-
-
- Dubniyum
-
-
- Seaborgiyum
-
-
- Bohriyum
-
-
- Hassiyum
-
-
- Meitneriyum
-
-
- Darmstadtiyum
-
-
- Röntgenyum
-
-
- Kopernikyum
-
-
- Ununtriyum
-
-
- Flerovyum
-
-
- Ununpentiyum
-
-
- Livermoryum
-
-
- Ununseptiyum
-
-
- Ununoktiyum
-
-
- Element {0}
-
-
- İzotop
-
-
- İzotoplar
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.zh-Hans.resx b/Chemistry/Chemistry/ChemistryResource.zh-Hans.resx
deleted file mode 100644
index 4d064f9f..00000000
--- a/Chemistry/Chemistry/ChemistryResource.zh-Hans.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 化学元素
-
-
- 化学
-
-
- 元素
-
-
- 氢
-
-
- 氦
-
-
- 锂
-
-
- 铍
-
-
- 硼
-
-
- 碳
-
-
- 氮
-
-
- 氧
-
-
- 氟
-
-
- 氖
-
-
- 钠
-
-
- 镁
-
-
- 铝
-
-
- 硅
-
-
- 磷
-
-
- 硫
-
-
- 氯
-
-
- 氩
-
-
- 钾
-
-
- 钙
-
-
- 钪
-
-
- 钛
-
-
- 钒
-
-
- 铬
-
-
- 锰
-
-
- 铁
-
-
- 钴
-
-
- 镍
-
-
- 铜
-
-
- 锌
-
-
- 镓
-
-
- 锗
-
-
- 砷
-
-
- 硒
-
-
- 溴
-
-
- 氪
-
-
- 铷
-
-
- 锶
-
-
- 钇
-
-
- 锆
-
-
- 铌
-
-
- 钼
-
-
- 锝
-
-
- 钌
-
-
- 铑
-
-
- 钯
-
-
- 银
-
-
- 镉
-
-
- 铟
-
-
- 锡
-
-
- 锑
-
-
- 碲
-
-
- 碘
-
-
- 氙
-
-
- 铯
-
-
- 钡
-
-
- 镧
-
-
- 铈
-
-
- 镨
-
-
- 钕
-
-
- 钷
-
-
- 钐
-
-
- 铕
-
-
- 钆
-
-
- 铽
-
-
- 镝
-
-
- 钬
-
-
- 铒
-
-
- 铥
-
-
- 镱
-
-
- 镥
-
-
- 铪
-
-
- 钽
-
-
- 钨
-
-
- 铼
-
-
- 锇
-
-
- 铱
-
-
- 铂
-
-
- 金
-
-
- 汞
-
-
- 铊
-
-
- 铅
-
-
- 铋
-
-
- 钋
-
-
- 砹
-
-
- 氡
-
-
- 钫
-
-
- 镭
-
-
- 锕
-
-
- 钍
-
-
- 镤
-
-
- 铀
-
-
- 镎
-
-
- 钚
-
-
- 镅
-
-
- 锔
-
-
- 锫
-
-
- 锎
-
-
- 锿
-
-
- 镄
-
-
- 钔
-
-
- 锘
-
-
- 铹
-
-
- 𬬻
-
-
- 𬭊
-
-
- 𬭳
-
-
- 𬭛
-
-
- 𬭶
-
-
- 鿏
-
-
- 𫟼
-
-
- 𬬭
-
-
- 鿔
-
-
- 鿭
-
-
- 𫓧
-
-
- 镆
-
-
- 𫟷
-
-
- 鿬
-
-
- 鿫
-
-
- {0}号元素
-
-
- 同位素
-
-
- 同位素
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/ChemistryResource.zh-Hant.resx b/Chemistry/Chemistry/ChemistryResource.zh-Hant.resx
deleted file mode 100644
index 8a7cc578..00000000
--- a/Chemistry/Chemistry/ChemistryResource.zh-Hant.resx
+++ /dev/null
@@ -1,492 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 化學元素
-
-
- 化學
-
-
- 元素
-
-
- 氫
-
-
- 氦
-
-
- 鋰
-
-
- 鈹
-
-
- 硼
-
-
- 碳
-
-
- 氮
-
-
- 氧
-
-
- 氟
-
-
- 氖
-
-
- 鈉
-
-
- 鎂
-
-
- 鋁
-
-
- 矽
-
-
- 磷
-
-
- 硫
-
-
- 氯
-
-
- 氬
-
-
- 鉀
-
-
- 鈣
-
-
- 鈧
-
-
- 鈦
-
-
- 釩
-
-
- 鉻
-
-
- 錳
-
-
- 鐵
-
-
- 鈷
-
-
- 鎳
-
-
- 銅
-
-
- 鋅
-
-
- 鎵
-
-
- 鍺
-
-
- 砷
-
-
- 硒
-
-
- 溴
-
-
- 氪
-
-
- 銣
-
-
- 鍶
-
-
- 釔
-
-
- 鋯
-
-
- 鈮
-
-
- 鉬
-
-
- 鎝
-
-
- 釕
-
-
- 銠
-
-
- 鈀
-
-
- 銀
-
-
- 鎘
-
-
- 銦
-
-
- 錫
-
-
- 銻
-
-
- 碲
-
-
- 碘
-
-
- 氙
-
-
- 銫
-
-
- 鋇
-
-
- 鑭
-
-
- 鈰
-
-
- 鐠
-
-
- 釹
-
-
- 鉕
-
-
- 釤
-
-
- 銪
-
-
- 釓
-
-
- 鋱
-
-
- 鏑
-
-
- 鈥
-
-
- 鉺
-
-
- 銩
-
-
- 鐿
-
-
- 鎦
-
-
- 鉿
-
-
- 鉭
-
-
- 鎢
-
-
- 錸
-
-
- 鋨
-
-
- 銥
-
-
- 鉑
-
-
- 金
-
-
- 汞
-
-
- 鉈
-
-
- 鉛
-
-
- 鉍
-
-
- 釙
-
-
- 砈
-
-
- 氡
-
-
- 鍅
-
-
- 鐳
-
-
- 錒
-
-
- 釷
-
-
- 鏷
-
-
- 鈾
-
-
- 錼
-
-
- 鈽
-
-
- 鋂
-
-
- 鋦
-
-
- 鉳
-
-
- 鉲
-
-
- 鑀
-
-
- 鐨
-
-
- 鍆
-
-
- 鍩
-
-
- 鐒
-
-
- 鑪
-
-
- 𨧀
-
-
- 𨭎
-
-
- 𨨏
-
-
- 𨭆
-
-
- 䥑
-
-
- 鐽
-
-
- 錀
-
-
- 鎶
-
-
- 鉨
-
-
- 鈇
-
-
- 鏌
-
-
- 鉝
-
-
- 鿬
-
-
- 鿫
-
-
- {0}號元素
-
-
- 同位素
-
-
- 同位素
-
-
\ No newline at end of file
diff --git a/Chemistry/Chemistry/Isotope.cs b/Chemistry/Chemistry/Isotope.cs
deleted file mode 100644
index e636861c..00000000
--- a/Chemistry/Chemistry/Isotope.cs
+++ /dev/null
@@ -1,261 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.Json;
-using System.Threading.Tasks;
-
-using Trivial.Text;
-
-namespace Trivial.Chemistry;
-
-///
-/// The model of isotope.
-///
-public class Isotope : IEquatable
-{
- ///
- /// Initializes a new instance of the Isotope class.
- ///
- /// The chemical element.
- /// The atomic mass number (total protons and neutrons).
- public Isotope(ChemicalElement element, int atomicMassNumber)
- {
- Element = element;
- if (element is null || element.AtomicNumber < 1)
- {
- AtomicMassNumber = atomicMassNumber < 0 ? -1 : atomicMassNumber;
- return;
- }
-
- AtomicMassNumber = atomicMassNumber < element.AtomicNumber
- ? element.AtomicNumber
- : atomicMassNumber;
- }
-
- ///
- /// Initializes a new instance of the Isotope class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The atomic mass number (total protons and neutrons).
- public Isotope(int atomicNumber, int atomicMassNumber)
- : this(ChemicalElement.Get(atomicNumber), atomicMassNumber)
- {
- }
-
- ///
- /// Initializes a new instance of the Isotope class.
- ///
- /// The chemical element.
- /// The atomic mass number (total protons and neutrons).
- /// The atomic weight in dalton (unified atomic mass unit).
- public Isotope(ChemicalElement element, int atomicMassNumber, double atomicWeight)
- : this(element, atomicMassNumber)
- {
- AtomicWeight = atomicWeight;
- }
-
- ///
- /// Initializes a new instance of the Isotope class.
- ///
- /// The atomic number (or proton number, symbol Z) of the chemical element. The number is one-based.
- /// The atomic mass number (total protons and neutrons).
- /// The atomic weight in dalton (unified atomic mass unit).
- public Isotope(int atomicNumber, int atomicMassNumber, double atomicWeight)
- : this(ChemicalElement.Get(atomicNumber), atomicMassNumber)
- {
- AtomicWeight = atomicWeight;
- }
-
- ///
- /// Gets the chemical element.
- ///
- public ChemicalElement Element { get; }
-
- ///
- /// Gets the element symbol.
- ///
- public string ElementSymbol => Element?.Symbol;
-
- ///
- /// Gets the atomic number (or proton number, symbol Z) of the chemical element.
- /// It is the one-based number of protons found in the nucleus of every atom of that element.
- ///
- public int AtomicNumber => Element?.AtomicNumber ?? -1;
-
- ///
- /// Gets the atomic mass number (total protons and neutrons).
- ///
- public int AtomicMassNumber { get; }
-
- ///
- /// Gets the atomic weight in dalton (unified atomic mass unit).
- ///
- public double AtomicWeight { get; }
-
- ///
- /// Gets a value indicating whether has atomic weight information.
- ///
- public bool HasAtomicWeight => !double.IsNaN(AtomicWeight);
-
- ///
- /// Gets the numbers of neutron.
- ///
- public int Neutrons
- {
- get
- {
- if (AtomicMassNumber < 1)
- return AtomicMassNumber == 0 ? 0 : -1;
- if (AtomicNumber > 0)
- return AtomicMassNumber - AtomicNumber;
- return AtomicMassNumber;
- }
- }
-
- ///
- /// Writes this instance to the specified writer as a JSON value.
- ///
- /// The writer to which to write this instance.
- public void WriteTo(Utf8JsonWriter writer)
- {
- var json = (JsonObjectNode)this;
- json.WriteTo(writer);
- }
-
- ///
- /// Peturns a string that represents the current isotope information.
- ///
- /// A string that represents the current isotope information.
- public override string ToString()
- {
- if (Element is null) return "?";
- if (AtomicMassNumber < 1) return Element.Symbol;
- if (Element.AtomicNumber == 1 && Element.Symbol == "H")
- {
- switch (AtomicMassNumber)
- {
- case 1:
- return "H";
- case 2:
- return "D";
- case 3:
- return "T";
- }
- }
-
- return AtomicMassNumber
- .ToString("g")
- .Replace('0', '⁰')
- .Replace('1', '¹')
- .Replace('2', '²')
- .Replace('3', '³')
- .Replace('4', '⁴')
- .Replace('5', '⁵')
- .Replace('6', '⁶')
- .Replace('7', '⁷')
- .Replace('8', '⁸')
- .Replace('9', '⁹')
- + Element.Symbol;
- }
-
- ///
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public bool Equals(Isotope other)
- {
- if (other is null) return false;
- if (ReferenceEquals(this, other)) return true;
- return Element == other.Element
- && AtomicMassNumber == other.AtomicMassNumber;
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public override bool Equals(object other)
- {
- if (other is null) return false;
- if (other is Isotope isotope) return Equals(isotope);
- if (other is ChemicalElement element) return element.Equals(Element);
- return false;
- }
-
- ///
- /// Compares two isotopes to indicate if they are same.
- /// leftValue == rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator ==(Isotope leftValue, Isotope rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return true;
- if (leftValue is null || rightValue is null) return false;
- return leftValue.Equals(rightValue);
- }
-
- ///
- /// Compares two isotopes to indicate if they are different.
- /// leftValue != rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are different; otherwise, false.
- public static bool operator !=(Isotope leftValue, Isotope rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return false;
- if (leftValue is null || rightValue is null) return true;
- return !leftValue.Equals(rightValue);
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The isotope to convert.
- public static explicit operator JsonObjectNode(Isotope isotope)
- {
- if (isotope is null || isotope.AtomicNumber < 1 || isotope.AtomicWeight < 1) return null;
- var json = new JsonObjectNode
- {
- { "symbol", isotope.ToString() },
- { "number", isotope.AtomicNumber },
- { "element", isotope.ElementSymbol },
- { "neutrons", isotope.Neutrons },
- { "mass", isotope.AtomicMassNumber }
- };
- if (!double.IsNaN(isotope.AtomicWeight))
- json.SetValue("weight", isotope.AtomicWeight);
- return json;
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The isotope to convert.
- public static explicit operator JsonDocument(Isotope isotope)
- {
- if (isotope is null || isotope.AtomicNumber < 1 || isotope.AtomicWeight < 1) return null;
- return (JsonDocument)(JsonObjectNode)isotope;
- }
-
- ///
- /// Converts to a JSON object.
- ///
- /// The isotope to convert.
- public static explicit operator System.Text.Json.Nodes.JsonObject(Isotope isotope)
- {
- if (isotope is null || isotope.AtomicNumber < 1 || isotope.AtomicWeight < 1) return null;
- return (System.Text.Json.Nodes.JsonObject)(JsonObjectNode)isotope;
- }
-}
diff --git a/Chemistry/Chemistry/MolecularFormula.cs b/Chemistry/Chemistry/MolecularFormula.cs
deleted file mode 100644
index 8808fe5e..00000000
--- a/Chemistry/Chemistry/MolecularFormula.cs
+++ /dev/null
@@ -1,866 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Trivial.Chemistry;
-
-///
-/// The model of the molecular formula.
-///
-public class MolecularFormula : IEquatable
-{
- ///
- /// The item.
- ///
- public class Item : IEquatable-
- {
- ///
- /// Initializes a new instance of the MolecularFormula.Item class.
- ///
- /// The chemical element.
- /// The atom count.
- public Item(ChemicalElement element, int count = 1)
- {
- Element = element;
- Count = count;
- }
-
- ///
- /// Initializes a new instance of the MolecularFormula.Item class.
- ///
- /// The symbol of the chemical element.
- /// The atom count.
- public Item(string symbol, int count = 1)
- : this(ChemicalElement.Get(symbol), count)
- {
- }
-
- ///
- /// Gets the chemical element.
- ///
- public ChemicalElement Element { get; }
-
- ///
- /// Gets the atom count.
- ///
- public int Count { get; }
-
- ///
- /// Peturns a string that represents the current chemical element information.
- ///
- /// A string that represents the current chemical element information.
- public override string ToString()
- {
- var symbol = Element?.Symbol?.Trim();
- if (string.IsNullOrWhiteSpace(symbol) || Count < 1) return null;
- if (Count == 1) return symbol;
- return symbol + Count
- .ToString("g")
- .Replace('0', '₀')
- .Replace('1', '₁')
- .Replace('2', '₂')
- .Replace('3', '₃')
- .Replace('4', '₄')
- .Replace('5', '₅')
- .Replace('6', '₆')
- .Replace('7', '₇')
- .Replace('8', '₈')
- .Replace('9', '₉');
- }
-
- ///
- public override int GetHashCode()
- =>new Tuple(Element, Count).GetHashCode();
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public bool Equals(Item other)
- {
- if (other is null) return false;
- if (ReferenceEquals(this, other)) return true;
- return Element == other.Element
- && Count == other.Count;
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public override bool Equals(object other)
- {
- if (other is null) return false;
- if (other is Item isotope) return Equals(isotope);
- if (other is ChemicalElement element) return Count == 1 && element.Equals(Element);
- return false;
- }
-
- ///
- /// Compares two molecular formula items to indicate if they are same.
- /// leftValue == rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator ==(Item leftValue, Item rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return true;
- if (leftValue is null || rightValue is null) return false;
- return leftValue.Equals(rightValue);
- }
-
- ///
- /// Compares two molecular formula items to indicate if they are different.
- /// leftValue != rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are different; otherwise, false.
- public static bool operator !=(Item leftValue, Item rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return false;
- if (leftValue is null || rightValue is null) return true;
- return !leftValue.Equals(rightValue);
- }
- }
-
- ///
- /// The source cache.
- ///
- private readonly List
- list;
-
- ///
- /// The string format cache.
- ///
- private string s;
-
- ///
- /// Initializes a new instance of the MolecularFormula class.
- ///
- /// The items.
- public MolecularFormula(IEnumerable
- col)
- {
- list = new List
- (col);
- }
-
- ///
- /// Initializes a new instance of the MolecularFormula class.
- ///
- /// The items.
- /// The ionic charge numbe.
- public MolecularFormula(IEnumerable
- col, int chargeNumber)
- {
- list = new List
- (col.Where(ele => ele?.Element != null && ele.Count > 0));
- ChargeNumber = chargeNumber;
- }
-
- ///
- /// Initializes a new instance of the MolecularFormula class.
- ///
- /// The chemical element.
- /// The count of the specific chemical element.
- public MolecularFormula(ChemicalElement element, int count = 1)
- {
- list = string.IsNullOrEmpty(element?.Symbol) || count < 1
- ? new List
- ()
- : new List
- { new Item(element, count) };
- }
-
- ///
- /// Initializes a new instance of the MolecularFormula class.
- ///
- /// The chemical element A.
- /// The count of the specific chemical element A.
- /// The chemical element B.
- /// The count of the specific chemical element B.
- /// The chemical element C.
- /// The count of the specific chemical element C.
- /// The chemical element D.
- /// The count of the specific chemical element D.
- /// The chemical element F.
- /// The count of the specific chemical element E.
- /// The chemical element E.
- /// The count of the specific chemical element F.
- /// The chemical element G.
- /// The count of the specific chemical element G.
- public MolecularFormula(ChemicalElement elementA, int countA, ChemicalElement elementB, int countB, ChemicalElement elementC = null, int countC = 1, ChemicalElement elementD = null, int countD = 1, ChemicalElement elementE = null, int countE = 1, ChemicalElement elementF = null, int countF = 1, ChemicalElement elementG = null, int countG = 1)
- {
- list = new List
- ();
- if (!string.IsNullOrEmpty(elementA?.Symbol) && countA > 0)
- list.Add(new Item(elementA, countA));
- if (!string.IsNullOrEmpty(elementB?.Symbol) && countB > 0)
- list.Add(new Item(elementB, countB));
- if (!string.IsNullOrEmpty(elementC?.Symbol) && countC > 0)
- list.Add(new Item(elementC, countC));
- if (!string.IsNullOrEmpty(elementD?.Symbol) && countD > 0)
- list.Add(new Item(elementD, countD));
- if (!string.IsNullOrEmpty(elementE?.Symbol) && countE > 0)
- list.Add(new Item(elementE, countE));
- if (!string.IsNullOrEmpty(elementF?.Symbol) && countF > 0)
- list.Add(new Item(elementF, countF));
- if (!string.IsNullOrEmpty(elementG?.Symbol) && countG > 0)
- list.Add(new Item(elementG, countG));
- }
-
- ///
- /// Gets the ionic charge number.
- ///
- public int ChargeNumber { get; }
-
- ///
- /// Gets a value indicating whether this is an ion.
- ///
- public bool IsIon => ChargeNumber != 0;
-
- ///
- /// Gets the items.
- ///
- public IReadOnlyList
- Items => list.AsReadOnly();
-
- ///
- /// Gets all elements.
- ///
- public IEnumerable Elements
- => list.Select(ele => ele.Element).Where(ele => !string.IsNullOrEmpty(ele?.Symbol)).Distinct();
-
- ///
- /// Gets the atom count.
- ///
- public int Count => list.Sum(ele => ele.Count);
-
- ///
- /// Gets the proton numbers.
- ///
- public int ProtonNumber => list.Sum(ele => ele.Count * (ele.Element?.AtomicNumber ?? 0));
-
- ///
- /// Gets a collection of all elements and their numbers.
- ///
- /// A collection of all elements and their numbers.
- public IEnumerable
- Zip()
- {
- var list = new List
- ();
- foreach (var item in this.list)
- {
- Zip(list, item);
- }
-
- return list;
- }
-
- ///
- /// Reports the zero-based index of the first occurrence of the specified string in this instance.
- ///
- /// The string to seek.
- /// The zero-based index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is 0.
- /// symbol should not be null.
- /// symbol should not be empty.
- public int IndexOf(string symbol)
- {
- if (symbol == null) throw new ArgumentNullException(nameof(symbol), "symbol was null");
- symbol = symbol.Trim();
- if (symbol.Length < 1) throw new ArgumentException("symbol was empty", nameof(symbol));
- return list.FindIndex(ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase));
- }
-
- ///
- /// Reports the zero-based index of the first occurrence of the specified string in this instance.
- ///
- /// The string to seek.
- /// The search starting position.
- /// The optional number of character positions to examine.
- /// The zero-based index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is 0.
- /// symbol should not be null.
- public int IndexOf(string symbol, int startIndex, int? count = null)
- {
- if (symbol == null) throw new ArgumentNullException(nameof(symbol), "symbol was null");
- symbol = symbol.Trim();
- if (symbol.Length < 1) throw new ArgumentException("symbol was empty", nameof(symbol));
- return count.HasValue
- ? list.FindIndex(startIndex, count.Value, ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase))
- : list.FindIndex(startIndex, ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase));
- }
-
- ///
- /// Reports the zero-based index position of the last occurrence of a specified string within this instance.
- ///
- /// The string to seek.
- /// The zero-based starting index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is the last index position in this instance.
- /// symbol should not be null.
- public int LastIndexOf(string symbol)
- {
- if (symbol == null) throw new ArgumentNullException(nameof(symbol), "symbol was null");
- symbol = symbol.Trim();
- if (symbol.Length < 1) throw new ArgumentException("symbol was empty", nameof(symbol));
- return list.FindLastIndex(ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase));
- }
-
- ///
- /// Reports the zero-based index position of the last occurrence of a specified string within this instance.
- ///
- /// The string to seek.
- /// The search starting position. The search proceeds from startIndex toward the beginning of this instance.
- /// The optional number of character positions to examine.
- /// The zero-based starting index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is the last index position in this instance.
- /// symbol should not be null.
- public int LastIndexOf(string symbol, int startIndex, int? count = null)
- {
- if (symbol == null) throw new ArgumentNullException(nameof(symbol), "symbol was null");
- symbol = symbol.Trim();
- if (symbol.Length < 1) throw new ArgumentException("symbol was empty", nameof(symbol));
- return count.HasValue
- ? list.FindLastIndex(startIndex, count.Value, ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase))
- : list.FindLastIndex(startIndex, ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase));
- }
-
- ///
- /// Reports the zero-based index of the first occurrence of the specified string in this instance.
- ///
- /// The chemical element to seek.
- /// The zero-based index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is 0.
- /// element should not be null.
- public int IndexOf(ChemicalElement element)
- => element != null ? list.FindIndex(ele => ele.Element == element) : throw new ArgumentNullException(nameof(element), "element was null.");
-
- ///
- /// Reports the zero-based index position of the last occurrence of a specified string within this instance.
- ///
- /// The chemical element to seek.
- /// The zero-based starting index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is the last index position in this instance.
- /// element should not be null.
- public int LastIndexOf(ChemicalElement element)
- => element != null ? list.FindLastIndex(ele => ele.Element == element) : throw new ArgumentNullException(nameof(element), "element was null.");
-
- ///
- /// Reports the zero-based index of the first occurrence of the specified string in this instance.
- ///
- /// The chemical element to seek.
- /// The search starting position.
- /// The optional number of character positions to examine.
- /// The zero-based index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is 0.
- /// element should not be null.
- public int IndexOf(ChemicalElement element, int startIndex, int? count = null)
- => element != null ? (count.HasValue
- ? list.FindIndex(startIndex, count.Value, ele => ele.Element == element)
- : list.FindIndex(startIndex, ele => ele.Element == element)) : throw new ArgumentNullException(nameof(element), "element was null.");
-
- ///
- /// Reports the zero-based index position of the last occurrence of a specified string within this instance.
- ///
- /// The chemical element to seek.
- /// The search starting position. The search proceeds from startIndex toward the beginning of this instance.
- /// The optional number of character positions to examine.
- /// The zero-based starting index position of value if that string is found, or -1 if it is not. If value is System.String.Empty, the return value is the last index position in this instance.
- /// element should not be null.
- public int LastIndexOf(ChemicalElement element, int startIndex, int? count = null)
- => element != null ? (count.HasValue
- ? list.FindLastIndex(startIndex, count.Value, ele => ele.Element == element)
- : list.FindLastIndex(startIndex, ele => ele.Element == element)) : throw new ArgumentNullException(nameof(element), "element was null.");
-
- ///
- /// Gets the count of the specific chemical element.
- ///
- /// The chemcial element to get count.
- /// The total.
- public int GetCount(ChemicalElement element)
- {
- if (element is null) return 0;
- return list.Where(ele => ele.Element == element)?.Sum(ele => ele.Count) ?? 0;
- }
-
- ///
- /// Gets the count of the specific chemical element.
- ///
- /// The chemcial symbol to get count.
- /// The total.
- public int GetCount(string symbol)
- {
- symbol = symbol?.Trim();
- if (string.IsNullOrEmpty(symbol)) return 0;
- return list.Where(ele => symbol.Equals(ele.Element?.Symbol, StringComparison.OrdinalIgnoreCase))?.Sum(ele => ele.Count) ?? 0;
- }
-
- ///
- /// Peturns a string that represents the current chemical element information.
- ///
- /// A string that represents the current chemical element information.
- public override string ToString()
- {
- if (s != null) return s;
- var sb = new StringBuilder();
- foreach (var item in list)
- {
- sb.Append(item.ToString());
- }
-
- if (sb.Length == 0) sb.Append('e');
- if (ChargeNumber != 0)
- {
- if (ChargeNumber > 1 || ChargeNumber < -1) sb.Append(Math.Abs(ChargeNumber)
- .ToString("g")
- .Replace('0', '⁰')
- .Replace('1', '¹')
- .Replace('2', '²')
- .Replace('3', '³')
- .Replace('4', '⁴')
- .Replace('5', '⁵')
- .Replace('6', '⁶')
- .Replace('7', '⁷')
- .Replace('8', '⁸')
- .Replace('9', '⁹'));
- sb.Append(ChargeNumber > 0 ? '﹢' : 'ˉ');
- }
-
- return s = sb.ToString();
- }
-
- ///
- public override int GetHashCode()
- => new Tuple
, int>(list, ChargeNumber).GetHashCode();
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public bool Equals(MolecularFormula other)
- {
- if (other is null) return false;
- if (ReferenceEquals(this, other)) return true;
- if (ChargeNumber != other.ChargeNumber) return false;
- return Collection.ListExtensions.Equals(list, other.list);
- }
-
- ///
- /// Indicates whether this instance and a specified object are equal.
- ///
- /// The object to compare with the current instance.
- /// true if obj and this instance represent the same value; otherwise, false.
- public override bool Equals(object other)
- {
- if (other is null) return false;
- if (other is MolecularFormula isotope) return Equals(isotope);
- if (other is IEnumerable- col) return ChargeNumber == 0 && Collection.ListExtensions.Equals(list, col.ToList());
- return false;
- }
-
- ///
- /// Compares two molecular formula instances to indicate if they are same.
- /// leftValue == rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are same; otherwise, false.
- public static bool operator ==(MolecularFormula leftValue, MolecularFormula rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return true;
- if (leftValue is null || rightValue is null) return false;
- return leftValue.Equals(rightValue);
- }
-
- ///
- /// Compares two molecular formula instances to indicate if they are different.
- /// leftValue != rightValue
- ///
- /// The left value to compare.
- /// The right value to compare.
- /// true if they are different; otherwise, false.
- public static bool operator !=(MolecularFormula leftValue, MolecularFormula rightValue)
- {
- if (ReferenceEquals(leftValue, rightValue)) return false;
- if (leftValue is null || rightValue is null) return true;
- return !leftValue.Equals(rightValue);
- }
-
- ///
- /// Pluses a molecular formula and a chemical element.
- ///
- /// The left value for addition operator.
- /// The right value for addition operator.
- /// A result after addition.
- public static MolecularFormula operator +(MolecularFormula leftValue, ChemicalElement rightValue)
- {
- var isRightEmpty = string.IsNullOrEmpty(rightValue?.Symbol);
- if (leftValue is null && isRightEmpty) return null;
- if (leftValue is null) return new MolecularFormula(rightValue);
- if (isRightEmpty) return leftValue;
- var col = leftValue.list.ToList();
- col.Add(new Item(rightValue, 1));
- return new MolecularFormula(col, leftValue.ChargeNumber);
- }
-
- ///
- /// Pluses a molecular formula and a chemical element.
- ///
- /// The left value for addition operator.
- /// The right value for addition operator.
- /// A result after addition.
- public static MolecularFormula operator +(ChemicalElement leftValue, MolecularFormula rightValue)
- {
- var isLeftEmpty = string.IsNullOrEmpty(leftValue?.Symbol);
- if (rightValue is null && isLeftEmpty) return null;
- if (rightValue is null) return new MolecularFormula(leftValue);
- if (isLeftEmpty) return rightValue;
- var col = rightValue.list.ToList();
- col.Add(new Item(leftValue, 1));
- return new MolecularFormula(col, rightValue.ChargeNumber);
- }
-
- ///
- /// Pluses two molecular formula instances.
- ///
- /// The left value for addition operator.
- /// The right value for addition operator.
- /// A result after addition.
- public static MolecularFormula operator +(MolecularFormula leftValue, MolecularFormula rightValue)
- {
- if (leftValue is null || leftValue.Count == 0) return rightValue;
- if (rightValue is null || rightValue.Count == 0) return leftValue;
- var col = leftValue.list.ToList();
- col.AddRange(rightValue.list);
- return new MolecularFormula(col, leftValue.ChargeNumber + rightValue.ChargeNumber);
- }
-
- ///
- /// Converts to a molecular formula instance.
- ///
- /// The chemical element to convert.
- public static implicit operator MolecularFormula(ChemicalElement element)
- {
- return new MolecularFormula(element);
- }
-
- ///
- /// Parses.
- ///
- /// The input.
- /// A molecular formula instance parsed.
- public static MolecularFormula Parse(string s)
- {
- s = s?.Trim();
- if (string.IsNullOrWhiteSpace(s)) return null;
- return TryParse(s) ?? throw new FormatException("s is invalid.");
- }
-
- ///
- /// Tries to parse a molecular formula string.
- ///
- /// The input.
- /// The result output.
- /// true if parse succeeded; otherwise, false.
- public static bool TryParse(string s, out MolecularFormula result)
- {
- result = TryParse(s);
- return result != null;
- }
-
- ///
- /// Tries to parse a molecular formula string.
- ///
- /// The input.
- /// A molecular formula instance parsed.
- public static MolecularFormula TryParse(string s)
- {
- s = s?.Trim();
- if (string.IsNullOrWhiteSpace(s)) return null;
- var col = new List
- ();
- var sb = new StringBuilder();
- var count = 0;
- var hasCount = false;
- var sup = 0;
- foreach (var c in s)
- {
- if (c >= 'A' && c <= 'Z')
- {
- sup = 0;
- if (sb.Length > 0)
- {
- if (!Add(sb, col, hasCount ? count : 1))
- return null;
- }
-
- count = 0;
- hasCount = false;
- sb.Clear();
- sb.Append(c);
- continue;
- }
-
- if (c >= 'a' && c <= 'z')
- {
- sup = 0;
- count = 0;
- hasCount = false;
- sb.Append(c);
- continue;
- }
-
- var push = false;
- switch (c)
- {
- case '0':
- case '₀':
- sup = 0;
- count *= 10;
- break;
- case '1':
- case '₁':
- sup = 0;
- count = count * 10 + 1;
- hasCount = true;
- break;
- case '2':
- case '₂':
- sup = 0;
- count = count * 10 + 2;
- hasCount = true;
- break;
- case '3':
- case '₃':
- sup = 0;
- count = count * 10 + 3;
- hasCount = true;
- break;
- case '4':
- case '₄':
- sup = 0;
- count = count * 10 + 4;
- hasCount = true;
- break;
- case '5':
- case '₅':
- sup = 0;
- count = count * 10 + 5;
- hasCount = true;
- break;
- case '6':
- case '₆':
- sup = 0;
- count = count * 10 + 6;
- hasCount = true;
- break;
- case '7':
- case '₇':
- sup = 0;
- count = count * 10 + 7;
- hasCount = true;
- break;
- case '8':
- case '₈':
- count = count * 10 + 8;
- hasCount = true;
- break;
- case '9':
- case '₉':
- sup = 0;
- count = count * 10 + 9;
- hasCount = true;
- break;
- case ' ':
- case '_':
- case '·':
- case '.':
- case ',':
- case '~':
- sup = 0;
- push = true;
- break;
- case '-':
- case '+':
- case 'ˉ':
- case '﹢':
- push = true;
- break;
- case '⁰':
- sup *= 10;
- push = true;
- break;
- case '¹':
- sup = sup * 10 + 1;
- push = true;
- break;
- case '²':
- sup = sup * 10 + 2;
- push = true;
- break;
- case '³':
- sup = sup * 10 + 3;
- push = true;
- break;
- case '⁴':
- sup = sup * 10 + 4;
- push = true;
- break;
- case '⁵':
- sup = sup * 10 + 5;
- push = true;
- break;
- case '⁶':
- sup = sup * 10 + 6;
- push = true;
- break;
- case '⁷':
- sup = sup * 10 + 7;
- push = true;
- break;
- case '⁸':
- sup = sup * 10 + 8;
- push = true;
- break;
- case '⁹':
- sup = sup * 10 + 9;
- push = true;
- break;
- default:
- return null;
- }
-
- if (push)
- {
- if (sb.Length > 0)
- {
- if (!Add(sb, col, hasCount ? count : 1))
- return null;
- sb.Clear();
- }
-
- count = 0;
- hasCount = false;
- }
- }
-
- if (sb.Length > 0)
- {
- if (!Add(sb, col, hasCount ? count : 1))
- return null;
- sb.Clear();
- }
-
- var ion = 0;
- if (s.EndsWith("+") || s.EndsWith("﹢"))
- {
- ion = sup;
- }
- else if (s.EndsWith("-") || s.EndsWith("ˉ"))
- {
- ion = -sup;
- }
-
- var result = new MolecularFormula(col, ion);
- return result.list.Count > 0 ? result : null;
- }
-
- ///
- /// Gets a collection of all elements and their numbers.
- ///
- /// The collection.
- /// A collection of all elements and their numbers.
- public static IEnumerable
- Zip(IEnumerable col)
- {
- var list = new List
- ();
- if (col is null) return list;
- foreach (var item in col.SelectMany(ele => ele.list))
- {
- Zip(list, item);
- }
-
- return list;
- }
-
- ///
- /// Tests the elements in the two molecular formula instances are passed by the law of conservation of mass.
- ///
- /// The left collection.
- /// The right collection.
- /// true if conservation of mass; otherwise, false.
- public static bool ConservationOfMass(IEnumerable a, IEnumerable b)
- {
- try
- {
- var dictA = Zip(a).ToList();
- var dictB = Zip(b).ToList();
- if (dictA.Count != dictB.Count) return false;
- var chargeA = a.Sum(ele => ele.ChargeNumber);
- var chargeB = b.Sum(ele => ele.ChargeNumber);
- if (chargeA != chargeB) return false;
- foreach (var item in dictA)
- {
- if (item is null) continue;
- if (!dictB.Any(ele => item.Equals(ele))) return false;
- }
-
- return true;
- }
- catch (ArgumentException)
- {
- return false;
- }
- }
-
- ///
- /// Returns a string that represents the current object.
- ///
- /// The molecular fomula collection.
- /// A string that represents the current object.
- public static string ToString(IEnumerable formulas)
- {
- if (formulas is null) return string.Empty;
- var dict = new Dictionary();
- foreach (var item in formulas)
- {
- if (item is null) continue;
- var f = dict.Keys.FirstOrDefault(ele => ele == item);
- if (f is null) dict[item] = 1;
- else dict[f]++;
- }
-
- return string.Join(" + ", dict.Select(ele => {
- if (ele.Value > 1) return ele.Value.ToString("g") + ele.Key.ToString();
- return ele.Value.ToString();
- }));
- }
-
- private static bool Add(StringBuilder sb, List
- col, int count)
- {
- var symbol = sb.ToString();
- var item = new Item(symbol, count);
- if (item.Element is null)
- {
- switch (symbol)
- {
- case "R":
- col.Add(new Item(ChemicalElement.C, count));
- col.Add(new Item(ChemicalElement.H, count * 2 + 1));
- break;
- case "Ph":
- col.Add(new Item(ChemicalElement.C, count * 6));
- col.Add(new Item(ChemicalElement.H, count * 5));
- break;
- case "Bn":
- col.Add(new Item(ChemicalElement.C, count * 6));
- col.Add(new Item(ChemicalElement.H, count * 5));
- col.Add(new Item(ChemicalElement.C, count));
- col.Add(new Item(ChemicalElement.H, count * 2));
- break;
- default:
- return false;
- }
- }
-
- col.Add(item);
- return true;
- }
-
- private static void Zip(List
- list, Item item)
- {
- if (item?.Element is null || item.Count < 1) return;
- var count = list.Where(ele => ele.Element == item.Element).Sum(ele => ele.Count);
- list.RemoveAll(ele => ele.Element == item.Element);
- list.Add(new Item(item.Element, count + item.Count));
- }
-}
diff --git a/Chemistry/Chemistry/PeriodicTable.cs b/Chemistry/Chemistry/PeriodicTable.cs
deleted file mode 100644
index 87fe9295..00000000
--- a/Chemistry/Chemistry/PeriodicTable.cs
+++ /dev/null
@@ -1,614 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Trivial.Text;
-
-namespace Trivial.Chemistry;
-
-///
-/// The periodic table of chemical element.
-///
-public partial class ChemicalElement
-{
- ///
- /// Gets chemical element Hydrogen (Hydrogenium).
- /// A colourless, odourless, tasteless, flammable gaseous substance that is the simplest member of the family of chemical elements.
- ///
- public static ChemicalElement H => Get(1);
-
- ///
- /// Gets chemical element Helium.
- /// The second lightest element, helium is a colourless, odourless, and tasteless gas that becomes liquid at −268.9 °C (−452 °F).
- ///
- public static ChemicalElement He => Get(2);
-
- ///
- /// Gets chemical element Lithium.
- /// The lightest of the solid elements. The metal itself—which is soft, white, and lustrous—and several of its alloys and compounds are produced on an industrial scale.
- ///
- public static ChemicalElement Li => Get(3);
-
- ///
- /// Gets chemical element Beryllium, formerly (until 1957AD) glucinium.
- ///
- public static ChemicalElement Be => Get(4);
-
- ///
- /// Gets chemical element Boron.
- ///
- public static ChemicalElement B => Get(5);
-
- ///
- /// Gets chemical element Carbon (Carboneum).
- ///
- public static ChemicalElement C => Get(6);
-
- ///
- /// Gets chemical element Nitrogen (Nitrogenium).
- ///
- public static ChemicalElement N => Get(7);
-
- ///
- /// Gets chemical element Oxygen (Oxygenium).
- /// A colourless, odourless, tasteless gas essential to living organisms, being taken up by animals, which convert it to carbon dioxide.
- ///
- public static ChemicalElement O => Get(8);
-
- ///
- /// Gets chemical element Fluorine (Fluorum).
- ///
- public static ChemicalElement F => Get(9);
-
- ///
- /// Gets chemical element Neon.
- ///
- public static ChemicalElement Ne => Get(10);
-
- ///
- /// Gets chemical element Sodium (Natrium).
- /// A very soft silvery-white metal.
- ///
- public static ChemicalElement Na => Get(11);
-
- ///
- /// Gets chemical element Magnesium.
- ///
- public static ChemicalElement Mg => Get(12);
-
- ///
- /// Gets chemical element Aluminium.
- /// Also spelled aluminium, a lightweight silvery white metal.
- ///
- public static ChemicalElement Al => Get(13);
-
- ///
- /// Gets chemical element Silicon (Silicium).
- ///
- public static ChemicalElement Si => Get(14);
-
- ///
- /// Gets chemical element Phosphorus.
- ///
- public static ChemicalElement P => Get(15);
-
- ///
- /// Gets chemical element Sulfur.
- ///
- public static ChemicalElement S => Get(16);
-
- ///
- /// Gets chemical element Chlorine (Chlorum).
- ///
- public static ChemicalElement Cl => Get(17);
-
- ///
- /// Gets chemical element Argon.
- ///
- public static ChemicalElement Ar => Get(18);
-
- ///
- /// Gets chemical element Potassium (Kalium).
- ///
- public static ChemicalElement K => Get(19);
-
- ///
- /// Gets chemical element Calcium.
- ///
- public static ChemicalElement Ca => Get(20);
-
- ///
- /// Gets chemical element Scandium.
- ///
- public static ChemicalElement Sc => Get(21);
-
- ///
- /// Gets chemical element Titanium.
- ///
- public static ChemicalElement Ti => Get(22);
-
- ///
- /// Gets chemical element Vanadium.
- ///
- public static ChemicalElement V => Get(23);
-
- ///
- /// Gets chemical element Chromium.
- ///
- public static ChemicalElement Cr => Get(24);
-
- ///
- /// Gets chemical element Manganese (Manganum).
- ///
- public static ChemicalElement Mn => Get(25);
-
- ///
- /// Gets chemical element Iron.
- ///
- public static ChemicalElement Fe => Get(26);
-
- ///
- /// Gets chemical element Cobalt (Cobaltum).
- ///
- public static ChemicalElement Co => Get(27);
-
- ///
- /// Gets chemical element Nickel.
- ///
- public static ChemicalElement Ni => Get(28);
-
- ///
- /// Gets chemical element Copper (Cuprum).
- ///
- public static ChemicalElement Cu => Get(29);
-
- ///
- /// Gets chemical element Zinc (Zincum).
- ///
- public static ChemicalElement Zn => Get(30);
-
- ///
- /// Gets chemical element Gallium.
- ///
- public static ChemicalElement Ga => Get(31);
-
- ///
- /// Gets chemical element Germanium.
- ///
- public static ChemicalElement Ge => Get(32);
-
- ///
- /// Gets chemical element Arsenic (Arsenicum).
- ///
- public static ChemicalElement As => Get(33);
-
- ///
- /// Gets chemical element Selenium.
- ///
- public static ChemicalElement Se => Get(34);
-
- ///
- /// Gets chemical element Bromine (Bromum).
- ///
- public static ChemicalElement Br => Get(35);
-
- ///
- /// Gets chemical element Krypton.
- ///
- public static ChemicalElement Kr => Get(36);
-
- ///
- /// Gets chemical element Rubidium.
- ///
- public static ChemicalElement Rb => Get(37);
-
- ///
- /// Gets chemical element Strontium.
- ///
- public static ChemicalElement Sr => Get(38);
-
- ///
- /// Gets chemical element Yttrium.
- ///
- public static ChemicalElement Y => Get(39);
-
- ///
- /// Gets chemical element Zirconium.
- ///
- public static ChemicalElement Zr => Get(40);
-
- ///
- /// Gets chemical element Niobium, formerly Columbium.
- ///
- public static ChemicalElement Nb => Get(41);
-
- ///
- /// Gets chemical element Molybdenum (Molybdaenum).
- ///
- public static ChemicalElement Mo => Get(42);
-
- ///
- /// Gets chemical element Technetium.
- ///
- public static ChemicalElement Tc => Get(43);
-
- ///
- /// Gets chemical element Ruthenium.
- ///
- public static ChemicalElement Ru => Get(44);
-
- ///
- /// Gets chemical element Rhodium.
- ///
- public static ChemicalElement Rh => Get(45);
-
- ///
- /// Gets chemical element Palladium.
- ///
- public static ChemicalElement Pd => Get(46);
-
- ///
- /// Gets chemical element Silver (Argentum).
- /// A white lustrous metal valued for its decorative beauty and electrical conductivity.
- ///
- public static ChemicalElement Ag => Get(47);
-
- ///
- /// Gets chemical element Cadmium.
- ///
- public static ChemicalElement Cd => Get(48);
-
- ///
- /// Gets chemical element Indium.
- ///
- public static ChemicalElement In => Get(49);
-
- ///
- /// Gets chemical element Tin.
- ///
- public static ChemicalElement Sn => Get(50);
-
- ///
- /// Gets chemical element Antimony.
- ///
- public static ChemicalElement Sb => Get(51);
-
- ///
- /// Gets chemical element Tellurium.
- ///
- public static ChemicalElement Te => Get(52);
-
- ///
- /// Gets chemical element Iodine (Iodum).
- ///
- public static ChemicalElement I => Get(53);
-
- ///
- /// Gets chemical element Xenon.
- ///
- public static ChemicalElement Xe => Get(54);
-
- ///
- /// Gets chemical element Caesium.
- ///
- public static ChemicalElement Cs => Get(55);
-
- ///
- /// Gets chemical element Barium.
- ///
- public static ChemicalElement Ba => Get(56);
-
- ///
- /// Gets chemical element Lanthanum.
- ///
- public static ChemicalElement La => Get(57);
-
- ///
- /// Gets chemical element Cerium.
- ///
- public static ChemicalElement Ce => Get(58);
-
- ///
- /// Gets chemical element Praseodymium.
- ///
- public static ChemicalElement Pr => Get(59);
-
- ///
- /// Gets chemical element Neodymium.
- ///
- public static ChemicalElement Nd => Get(60);
-
- ///
- /// Gets chemical element Promethium.
- ///
- public static ChemicalElement Pm => Get(61);
-
- ///
- /// Gets chemical element Samarium.
- ///
- public static ChemicalElement Sm => Get(62);
-
- ///
- /// Gets chemical element Europium.
- ///
- public static ChemicalElement Eu => Get(63);
-
- ///
- /// Gets chemical element Gadolinium.
- ///
- public static ChemicalElement Gd => Get(64);
-
- ///
- /// Gets chemical element Terbium.
- ///
- public static ChemicalElement Tb => Get(65);
-
- ///
- /// Gets chemical element Dysprosium.
- ///
- public static ChemicalElement Dy => Get(66);
-
- ///
- /// Gets chemical element Holmium.
- ///
- public static ChemicalElement Ho => Get(67);
-
- ///
- /// Gets chemical element Erbium.
- ///
- public static ChemicalElement Er => Get(68);
-
- ///
- /// Gets chemical element Thulium.
- ///
- public static ChemicalElement Tm => Get(69);
-
- ///
- /// Gets chemical element Ytterbium.
- ///
- public static ChemicalElement Yb => Get(70);
-
- ///
- /// Gets chemical element Lutetium.
- ///
- public static ChemicalElement Lu => Get(71);
-
- ///
- /// Gets chemical element Hafnium.
- ///
- public static ChemicalElement Hf => Get(72);
-
- ///
- /// Gets chemical element Tantalum.
- ///
- public static ChemicalElement Ta => Get(73);
-
- ///
- /// Gets chemical element Tungsten.
- ///
- public static ChemicalElement W => Get(74);
-
- ///
- /// Gets chemical element Rhenium.
- ///
- public static ChemicalElement Re => Get(75);
-
- ///
- /// Gets chemical element Osmium.
- ///
- public static ChemicalElement Os => Get(76);
-
- ///
- /// Gets chemical element Iridium.
- ///
- public static ChemicalElement Ir => Get(77);
-
- ///
- /// Gets chemical element Platinum.
- /// A very heavy, precious, silver-white metal, platinum is soft and ductile and has a high melting point and good resistance to corrosion and chemical attack.
- ///
- public static ChemicalElement Pt => Get(78);
-
- ///
- /// Gets chemical element Gold (Aurum).
- /// Gold has several qualities that have made it exceptionally valuable throughout history. It is attractive in colour and brightness, durable to the point of virtual indestructibility, highly malleable, and usually found in nature in a comparatively pure form.
- ///
- public static ChemicalElement Au => Get(79);
-
- ///
- /// Gets chemical element Mercury (Hydrargyrum).
- ///
- public static ChemicalElement Hg => Get(80);
-
- ///
- /// Gets chemical element Thallium.
- ///
- public static ChemicalElement Tl => Get(81);
-
- ///
- /// Gets chemical element Lead (Plumbum).
- ///
- public static ChemicalElement Pb => Get(82);
-
- ///
- /// Gets chemical element Bismuth (Bismuthum).
- ///
- public static ChemicalElement Bi => Get(83);
-
- ///
- /// Gets chemical element Polonium.
- ///
- public static ChemicalElement Po => Get(84);
-
- ///
- /// Gets chemical element Astatine (Astatium).
- ///
- public static ChemicalElement At => Get(85);
-
- ///
- /// Gets chemical element Radon.
- ///
- public static ChemicalElement Rn => Get(86);
-
- ///
- /// Gets chemical element Francium.
- ///
- public static ChemicalElement Fr => Get(87);
-
- ///
- /// Gets chemical element Radium.
- ///
- public static ChemicalElement Ra => Get(88);
-
- ///
- /// Gets chemical element Actinium.
- ///
- public static ChemicalElement Ac => Get(89);
-
- ///
- /// Gets chemical element Thorium.
- ///
- public static ChemicalElement Th => Get(90);
-
- ///
- /// Gets chemical element Protactinium.
- ///
- public static ChemicalElement Pa => Get(91);
-
- ///
- /// Gets chemical element Uranium.
- ///
- public static ChemicalElement U => Get(92);
-
- ///
- /// Gets chemical element Neptunium.
- ///
- public static ChemicalElement Np => Get(93);
-
- ///
- /// Gets chemical element Plutonium.
- ///
- public static ChemicalElement Pu => Get(94);
-
- ///
- /// Gets chemical element Americium.
- ///
- public static ChemicalElement Am => Get(95);
-
- ///
- /// Gets chemical element Curium.
- ///
- public static ChemicalElement Cm => Get(96);
-
- ///
- /// Gets chemical element Berkelium.
- ///
- public static ChemicalElement Bk => Get(97);
-
- ///
- /// Gets chemical element Californium.
- ///
- public static ChemicalElement Cf => Get(98);
-
- ///
- /// Gets chemical element Einsteinium.
- ///
- public static ChemicalElement Es => Get(99);
-
- ///
- /// Gets chemical element Fermium.
- ///
- public static ChemicalElement Fm => Get(100);
-
- ///
- /// Gets chemical element Mendelevium.
- ///
- public static ChemicalElement Md => Get(101);
-
- ///
- /// Gets chemical element Nobelium.
- ///
- public static ChemicalElement No => Get(102);
-
- ///
- /// Gets chemical element Lawrencium.
- ///
- public static ChemicalElement Lr => Get(103);
-
- ///
- /// Gets chemical element Rutherfordium.
- ///
- public static ChemicalElement Rf => Get(104);
-
- ///
- /// Gets chemical element Dubnium.
- ///
- public static ChemicalElement Db => Get(105);
-
- ///
- /// Gets chemical element Seaborgium.
- ///
- public static ChemicalElement Sg => Get(106);
-
- ///
- /// Gets chemical element Bohrium.
- ///
- public static ChemicalElement Bh => Get(107);
-
- ///
- /// Gets chemical element Hassium.
- ///
- public static ChemicalElement Hs => Get(108);
-
- ///
- /// Gets chemical element Meitnerium.
- ///
- public static ChemicalElement Mt => Get(109);
-
- ///
- /// Gets chemical element Darmstadtium.
- ///
- public static ChemicalElement Ds => Get(110);
-
- ///
- /// Gets chemical element Roentgenium.
- ///
- public static ChemicalElement Rg => Get(111);
-
- ///
- /// Gets chemical element Copernicium.
- ///
- public static ChemicalElement Cn => Get(112);
-
- ///
- /// Gets chemical element Nihonium.
- ///
- public static ChemicalElement Nh => Get(113);
-
- ///
- /// Gets chemical element Flerovium.
- ///
- public static ChemicalElement Fl => Get(114);
-
- ///
- /// Gets chemical element Moscovium.
- ///
- public static ChemicalElement Mc => Get(115);
-
- ///
- /// Gets chemical element Livermorium.
- ///
- public static ChemicalElement Lv => Get(116);
-
- ///
- /// Gets chemical element Tennessine.
- ///
- public static ChemicalElement Ts => Get(117);
-
- ///
- /// Gets chemical element Oganesson.
- ///
- public static ChemicalElement Og => Get(118);
-}
diff --git a/Chemistry/CommandLine/Options.cs b/Chemistry/CommandLine/Options.cs
deleted file mode 100644
index 793ab8b2..00000000
--- a/Chemistry/CommandLine/Options.cs
+++ /dev/null
@@ -1,224 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Text.Json.Serialization;
-using System.Threading.Tasks;
-
-using Trivial.Collection;
-using Trivial.Chemistry;
-using Trivial.Text;
-
-namespace Trivial.CommandLine;
-
-///
-/// The kinds to represent the information of chemical element.
-///
-public enum ChemicalElementRepresentationKinds
-{
- ///
- /// Summary.
- ///
- Summary = 0,
-
- ///
- /// Detail information.
- ///
- Details = 1,
-
- ///
- /// Detail information and isotopes.
- ///
- DetailsAndIsotopes = 2
-}
-
-///
-/// The console style for chemical element.
-///
-public class ChemicalElementConsoleStyle : ICloneable, IConsoleTextCreator
-{
- ///
- /// Gets or sets the fallback console color of element name.
- ///
- [JsonPropertyName("name2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? NameConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of element name.
- ///
- [JsonPropertyName("name")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? NameRgbColor { get; set; }
-
- ///
- /// Gets or sets the fallback console color of element symbol.
- ///
- [JsonPropertyName("symbol2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? SymbolConsoleColor { get; set; } = ConsoleColor.Yellow;
-
- ///
- /// Gets or sets the RGB color of element symbol.
- ///
- [JsonPropertyName("symbol")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? SymbolRgbColor { get; set; } = Color.FromArgb(0xF9, 0xEE, 0x88);
-
- ///
- /// Gets or sets the fallback console color of atomic number.
- ///
- [JsonPropertyName("z2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? AtomicNumberConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of atomic number.
- ///
- [JsonPropertyName("z")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? AtomicNumberRgbColor { get; set; } = Color.FromArgb(160, 160, 240);
-
- ///
- /// Gets or sets the fallback console color of element additional property key.
- ///
- [JsonPropertyName("key2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? PropertyKeyConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of additional property key.
- ///
- [JsonPropertyName("key")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? PropertyKeyRgbColor { get; set; } = Color.FromArgb(0xCE, 0x91, 0x78);
-
- ///
- /// Gets or sets the fallback console color of additional property value.
- ///
- [JsonPropertyName("value2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? PropertyValueConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of additional property value.
- ///
- [JsonPropertyName("value")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? PropertyValueRgbColor { get; set; }
-
- ///
- /// Gets or sets the fallback console color of element isotope information.
- ///
- [JsonPropertyName("isotope2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? IsotopeConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of element isotope information.
- ///
- [JsonPropertyName("isotope")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? IsotopeRgbColor { get; set; } = Color.FromArgb(160, 160, 160);
-
- ///
- /// Gets or sets the fallback console color of punctuation marks.
- ///
- [JsonPropertyName("punctuation2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? PunctuationConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of element punctuation marks.
- ///
- [JsonPropertyName("punctuation")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? PunctuationRgbColor { get; set; } = Color.FromArgb(128, 128, 128);
-
- ///
- /// Gets or sets the fallback console color of background.
- ///
- [JsonPropertyName("back2")]
- [JsonConverter(typeof(JsonIntegerEnumCompatibleConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public ConsoleColor? BackgroundConsoleColor { get; set; }
-
- ///
- /// Gets or sets the RGB color of background.
- ///
- [JsonPropertyName("back")]
- [JsonConverter(typeof(JsonNumberConverter))]
- [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
- public Color? BackgroundRgbColor { get; set; }
-
- ///
- /// Clears all colors.
- ///
- public void Clear()
- {
- NameConsoleColor = null;
- NameRgbColor = null;
- SymbolConsoleColor = null;
- SymbolRgbColor = null;
- AtomicNumberConsoleColor = null;
- AtomicNumberRgbColor = null;
- PropertyKeyConsoleColor = null;
- PropertyKeyRgbColor = null;
- PropertyValueConsoleColor = null;
- PropertyValueRgbColor = null;
- IsotopeConsoleColor = null;
- IsotopeRgbColor = null;
- PunctuationConsoleColor = null;
- PunctuationRgbColor = null;
- BackgroundConsoleColor = null;
- BackgroundRgbColor = null;
- }
-
- ///
- /// Clones an object.
- ///
- /// The object copied from this instance.
- public virtual ChemicalElementConsoleStyle Clone()
- => MemberwiseClone() as ChemicalElementConsoleStyle;
-
- ///
- /// Clones an object.
- ///
- /// The object copied from this instance.
- object ICloneable.Clone()
- => MemberwiseClone();
-
- ///
- /// Gets a value indicating whether it has already contained a line terminator.
- ///
- bool IConsoleTextCreator.ContainsTerminator => true;
-
- ///
- /// Creates the console text collection based on this style.
- ///
- /// The chemical element.
- /// The presentation kind.
- /// A collection of console text.
- IEnumerable IConsoleTextCreator.CreateTextCollection(ChemicalElement element, ChemicalElementRepresentationKinds kind)
- => kind switch
- {
- ChemicalElementRepresentationKinds.Details => ChemistryCommandLine.ToConsoleText(this, element, false),
- ChemicalElementRepresentationKinds.DetailsAndIsotopes => ChemistryCommandLine.ToConsoleText(this, element, true),
- _ => ChemistryCommandLine.ToSimpleConsoleText(this, element, false),
- };
-}
diff --git a/Chemistry/CommandLine/Utils.cs b/Chemistry/CommandLine/Utils.cs
deleted file mode 100644
index 64201cf9..00000000
--- a/Chemistry/CommandLine/Utils.cs
+++ /dev/null
@@ -1,484 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Trivial.Chemistry;
-using Trivial.Collection;
-
-namespace Trivial.CommandLine;
-
-///
-/// The chemistry command line.
-///
-public static class ChemistryCommandLine
-{
- ///
- /// Writes the specified chemical element, followed by the current line terminator, to the standard output stream.
- ///
- /// A chemicial element.
- /// The kind to represent the information of chemical element.
- public static void WriteLine(ChemicalElement element, ChemicalElementRepresentationKinds kind)
- => WriteLine(StyleConsole.Default, new ChemicalElementConsoleStyle(), element, kind);
-
- ///
- /// Writes the specified chemical element, followed by the current line terminator, to the standard output stream.
- ///
- /// The console instance.
- /// A chemicial element.
- /// The kind to represent the information of chemical element.
- public static void WriteLine(this StyleConsole console, ChemicalElement element, ChemicalElementRepresentationKinds kind)
- => WriteLine(console, new ChemicalElementConsoleStyle(), element, kind);
-
- ///
- /// Writes the specified chemical element, followed by the current line terminator, to the standard output stream.
- ///
- /// The console instance.
- /// The style.
- /// A chemicial element.
- /// The kind to represent the information of chemical element.
- public static void WriteLine(this StyleConsole console, ChemicalElementConsoleStyle style, ChemicalElement element, ChemicalElementRepresentationKinds kind)
- {
- var col = kind switch
- {
- ChemicalElementRepresentationKinds.Details => ToConsoleText(style, element, false),
- ChemicalElementRepresentationKinds.DetailsAndIsotopes => ToConsoleText(style, element, true),
- _ => ToSimpleConsoleText(style, element, false),
- };
- (console ?? StyleConsole.Default).Write(col);
- }
-
- ///
- /// Writes the specified chemistry periodic table, followed by the current line terminator, to the standard output stream.
- ///
- /// The console instance.
- /// The style.
- public static void WriteTable(StyleConsole console, ChemicalElementConsoleStyle style)
- {
- var col = new List();
- if (style == null) style = new();
- var symbolStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.SymbolConsoleColor,
- ForegroundRgbColor = style.SymbolRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var numberStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
-
- col.Add("1 ", punctuationStyle);
- AppendSymbol(col, ChemicalElement.H, symbolStyle);
- col.Add(' ', 64, punctuationStyle);
- AppendSymbol(col, ChemicalElement.He, symbolStyle);
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 1, numberStyle);
- col.Add(' ', 64, punctuationStyle);
- AppendNumber(col, 2, numberStyle);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("2 ", punctuationStyle);
- AppendSymbol(col, ChemicalElement.Li, symbolStyle);
- AppendSymbol(col, ChemicalElement.Be, symbolStyle);
- col.Add(' ', 40, punctuationStyle);
- AppendSymbol(col, ChemicalElement.B, symbolStyle);
- AppendSymbol(col, ChemicalElement.C, symbolStyle);
- AppendSymbol(col, ChemicalElement.N, symbolStyle);
- AppendSymbol(col, ChemicalElement.O, symbolStyle);
- AppendSymbol(col, ChemicalElement.F, symbolStyle);
- AppendSymbol(col, ChemicalElement.Ne, symbolStyle);
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 3, numberStyle, 2);
- col.Add(' ', 40, punctuationStyle);
- AppendNumber(col, 5, numberStyle, 6);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("3 ", punctuationStyle);
- AppendSymbol(col, ChemicalElement.Na, symbolStyle);
- AppendSymbol(col, ChemicalElement.Mg, symbolStyle);
- col.Add(' ', 40, punctuationStyle);
- AppendSymbol(col, ChemicalElement.Al, symbolStyle);
- AppendSymbol(col, ChemicalElement.Si, symbolStyle);
- AppendSymbol(col, ChemicalElement.P, symbolStyle);
- AppendSymbol(col, ChemicalElement.S, symbolStyle);
- AppendSymbol(col, ChemicalElement.Cl, symbolStyle);
- AppendSymbol(col, ChemicalElement.Ar, symbolStyle);
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 11, numberStyle, 2);
- col.Add(' ', 40, punctuationStyle);
- AppendNumber(col, 13, numberStyle, 6);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("4 ", punctuationStyle);
- for (var i = 19; i <= 36; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 19, numberStyle, 18);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("5 ", punctuationStyle);
- for (var i = 37; i <= 54; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 37, numberStyle, 18);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("6 ", punctuationStyle);
- for (var i = 55; i < 58; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- for (var i = 72; i <= 86; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 55, numberStyle, 2);
- col.Add("... ", punctuationStyle);
- AppendNumber(col, 72, numberStyle, 15);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add("7 ", punctuationStyle);
- for (var i = 87; i < 90; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- for (var i = 104; i <= 118; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add(" ", punctuationStyle);
- AppendNumber(col, 87, numberStyle, 2);
- col.Add("... ", punctuationStyle);
- AppendNumber(col, 104, numberStyle, 15);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add(ChemicalElement.La.Symbol, symbolStyle);
- col.Add('-', 1, punctuationStyle);
- col.Add(ChemicalElement.Lu.Symbol, symbolStyle);
- col.Add("\t ", punctuationStyle);
- for (var i = 57; i <= 71; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add("\t ", punctuationStyle);
- AppendNumber(col, 57, numberStyle, 15);
- col.AddNewLine();
- col.AddNewLine();
-
- col.Add(ChemicalElement.Ac.Symbol, symbolStyle);
- col.Add('-', 1, punctuationStyle);
- col.Add(ChemicalElement.Lr.Symbol, symbolStyle);
- col.Add("\t ");
- for (var i = 89; i <= 103; i++)
- {
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- }
-
- col.AddNewLine();
- col.Add("\t ", punctuationStyle);
- AppendNumber(col, 89, numberStyle, 15);
- col.AddNewLine();
- col.AddNewLine();
-
- if (ChemicalElement.Has(119) && ChemicalElement.Has(120))
- {
- col.Add("8 ", punctuationStyle);
- col.Add("119 ", numberStyle);
- col.Add('-', 1, punctuationStyle);
- col.Add(" 168 ", numberStyle);
- AppendSymbol(col, ChemicalElement.Get(119), symbolStyle);
- AppendSymbol(col, ChemicalElement.Get(120), symbolStyle);
- for (var i = 121; i < 131; i++)
- {
- if (ChemicalElement.Has(i))
- AppendSymbol(col, ChemicalElement.Get(i), symbolStyle);
- else
- break;
- }
-
- col.Add("...", punctuationStyle);
- col.AddNewLine();
- }
- else
- {
- col.Add("8 ", punctuationStyle);
- col.Add("119 ", numberStyle);
- col.Add('-', 1, punctuationStyle);
- col.Add(" 168 ", numberStyle);
- col.AddNewLine();
- }
-
- col.Add("9 ", punctuationStyle);
- col.Add("169 ", numberStyle);
- col.Add('-', 1, punctuationStyle);
- col.Add(" 218 ", numberStyle);
- col.AddNewLine();
-
- (console ?? StyleConsole.Default).Write(col);
- }
-
- ///
- /// Writes the element information to the standard output stream.
- ///
- /// The console style.
- /// A chemicial element.
- /// true if also write its isotopes; otherwise, false.
- internal static List ToConsoleText(ChemicalElementConsoleStyle style, ChemicalElement element, bool containIsotopes = false)
- {
- if (element is null) return null;
- if (style == null) style = new();
- var name = element.Name;
- var col = new List
- {
- {
- $"{element.AtomicNumber:g}\t",
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- }
- },
- {
- element.Symbol,
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.SymbolConsoleColor,
- ForegroundRgbColor = style.SymbolRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- }
- }
- };
- var nameStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.NameConsoleColor,
- ForegroundRgbColor = style.NameRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- if (!string.IsNullOrWhiteSpace(element.EnglishName) && !name.Equals(element.EnglishName))
- col.Add($"\t{element.EnglishName}", nameStyle);
- col.AddNewLine();
- col.Add($" {name}", nameStyle);
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- if (name.Length == 1 && name[0] >= 0x2E00)
- col.Add($"\t(U+{(int)name[0]:X4})", punctuationStyle);
- col.AddNewLine();
- var keyStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PropertyKeyConsoleColor,
- ForegroundRgbColor = style.PropertyKeyRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var valueStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PropertyValueConsoleColor,
- ForegroundRgbColor = style.PropertyValueRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- if (!double.IsNaN(element.AtomicWeight))
- {
- col.Add(" Weight", keyStyle);
- col.Add(" = ", punctuationStyle);
- col.Add(element.AtomicWeight.ToString("#.########"), valueStyle);
- col.AddNewLine();
- }
-
- if (element.Period > 0 && element.Group > 0)
- {
- col.Add(" Period", keyStyle);
- col.Add(" = ", punctuationStyle);
- col.Add(element.Period.ToString("g"), valueStyle);
- col.Add(" ", punctuationStyle);
- col.Add("Group", keyStyle);
- col.Add(" = ", punctuationStyle);
- col.Add(element.Group.ToString("g"), valueStyle);
- if (!string.IsNullOrWhiteSpace(element.Block))
- {
- col.Add(" ", punctuationStyle);
- col.Add("Block", keyStyle);
- col.Add(" = ", punctuationStyle);
- col.Add(element.Block, valueStyle);
- }
- }
-
- if (!containIsotopes) return col;
- var isotopes = element.Isotopes();
- if (isotopes.Count < 1) return col;
- col.AddNewLine();
- var isotopeStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.IsotopeConsoleColor,
- ForegroundRgbColor = style.IsotopeRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- col.Add(isotopes.Count == 1 ? ChemistryResource.Isotope : ChemistryResource.Isotopes, isotopeStyle);
- col.Add($" ({isotopes.Count})", punctuationStyle);
- var i = 0;
- if (isotopes.Count > 150)
- {
- foreach (var isotope in isotopes)
- {
- if (i % 8 == 0)
- col.AddNewLine();
- col.Add($"{isotope.AtomicMassNumber}\t", isotopeStyle);
- i++;
- }
-
- col.AddNewLine();
- return col;
- }
-
- col.AddNewLine();
- foreach (var isotope in isotopes)
- {
- if (isotope is null) continue;
- i++;
- var weight = isotope.HasAtomicWeight ? isotope.AtomicWeight.ToString("#.########") : string.Empty;
- col.Add($" {isotope.AtomicMassNumber}\t{weight}", isotopeStyle);
- if (weight.Length < 8) col.Add('\t', 1, isotopeStyle);
- if (i % 3 > 0) col.Add(" \t");
- else col.AddNewLine();
- }
-
- if (i % 3 > 0) col.AddNewLine();
- return col;
- }
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- ///
- /// The console style.
- /// A chemicial element.
- /// true if writes English name.
- internal static List ToSimpleConsoleText(ChemicalElementConsoleStyle style, ChemicalElement element, bool writeEnglishName)
- {
- if (string.IsNullOrWhiteSpace(element.Symbol) || element.Period < 1) return null;
- var name = writeEnglishName ? element.EnglishName : element.Name;
- if (style == null) style = new();
- var col = new List
- {
- {
- $"{element.AtomicNumber:g}\t",
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- }
- },
- {
- element.Symbol,
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.SymbolConsoleColor,
- ForegroundRgbColor = style.SymbolRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- }
- },
- {
- $"\t{name}",
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.NameConsoleColor,
- ForegroundRgbColor = style.NameRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- }
- }
- };
- if (!double.IsNaN(element.AtomicWeight))
- {
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- if (name.Length < 8) col.Add('\t', 2, punctuationStyle);
- else col.Add(" \t", punctuationStyle);
- col.Add(element.AtomicWeight.ToString("#.######"), punctuationStyle);
- }
-
- col.AddNewLine();
- return col;
- }
-
- internal static void AddNewLine(this List col)
- => col.Add(Environment.NewLine);
-
- internal static void AppendNumber(List col, int i, ConsoleTextStyle style, int count = 1)
- {
- var k = i + count;
- for (var j = i; j < k; j++)
- {
- var s = j.ToString("g");
- col.Add(s, style);
- col.Add(' ', 4 - s.Length, style);
- }
- }
-
- private static void AppendSymbol(List col, ChemicalElement element, ConsoleTextStyle style)
- {
- var s = element.Symbol?.Trim();
- if (string.IsNullOrEmpty(s)) return;
- if (s.Length > 4) s = s.Substring(0, 4);
- col.Add(s, style);
- col.Add(' ', 4 - s.Length, style);
- }
-}
diff --git a/Chemistry/CommandLine/Verb.cs b/Chemistry/CommandLine/Verb.cs
deleted file mode 100644
index 0d1e5b09..00000000
--- a/Chemistry/CommandLine/Verb.cs
+++ /dev/null
@@ -1,667 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-using Trivial.Chemistry;
-using Trivial.Collection;
-
-namespace Trivial.CommandLine;
-
-///
-/// Chemistry command line verb.
-///
-public class ChemistryVerb : BaseCommandVerb
-{
-#pragma warning disable IDE0057
- ///
- /// Gets the description.
- ///
- public static string Description => ChemistryResource.Chemistry;
-
- ///
- /// Gets or sets the help document.
- ///
- public static string HelpInfo { get; set; }
-
-
- ///
- /// Gets or sets the tips header for usages.
- ///
- public static string UsagesTips { get; set; }
-
- ///
- /// Gets or sets the tips header for examples.
- ///
- public static string ExamplesTips { get; set; }
-
- ///
- /// Gets or sets the tips for error.
- ///
- public static string ErrorTips { get; set; }
-
- ///
- /// Gets or sets the tips for empty.
- ///
- public static string EmptyTips { get; set; }
-
- ///
- /// Gets or sets the tips for not found.
- ///
- public static string NotFoundTips { get; set; }
-
- ///
- /// Gets or sets the tips for getting chemical element.
- ///
- public static string ElementTips { get; set; }
-
- ///
- /// Gets or sets the tips for showing periodic table.
- ///
- public static string PeriodicTableTips { get; set; }
-
- ///
- /// Gets or sets the tips for chemical elements in a specific period.
- ///
- public static string PeriodTips { get; set; }
-
- ///
- /// Gets or sets the tips for all elements.
- ///
- public static string AllElementsTips { get; set; }
-
- ///
- /// Gets or sets the tips for elements.
- ///
- public static string ElementListTips { get; set; }
-
- ///
- /// Gets or sets the tips for molecular formula.
- ///
- public static string MolecularFormulaTips { get; set; }
-
- ///
- /// Gets or sets the color of verb in help document.
- ///
- public static System.Drawing.Color VerbColorInHelp { get; set; } = System.Drawing.Color.FromArgb(0xF0, 0xE8, 0xA0);
-
- ///
- /// Gets or sets the console style of chemical element.
- ///
- public ChemicalElementConsoleStyle ChemicalElementStyle { get; set; }
-
- ///
- protected override async Task OnProcessAsync(CancellationToken cancellationToken = default)
- {
- await RunAsync(null, cancellationToken);
- var s = Arguments.Verb?.TryGet(0);
- var console = GetConsole();
- if (s == "period" || s == "p" || s == "周期" || (s == "Period" && Arguments.Verb.Count > 1))
- {
- s = Arguments.Verb.TryGet(1);
- if (string.IsNullOrEmpty(s))
- {
- ChemistryCommandLine.WriteTable(GetConsole(), ChemicalElementStyle);
- }
- else if (int.TryParse(s, out var period) && period > 0)
- {
- if (period > 7)
- {
- var start = ChemicalElement.FirstAtomicNumberInPeriod(period);
- var end = ChemicalElement.LastAtomicNumberInPeriod(period);
- if (start <= 0 || end <= 0 || start >= end)
- {
- WriteError(" The period was too large.");
- }
- else
- {
- console.WriteLine(ChemistryResource.ChemicalElement);
- console.WriteLine($"{start} - {end} (Total {end - start + 1})");
- }
-
- return;
- }
-
- var elements = ChemicalElement.GetExisted();
- var has = false;
- foreach (var element in elements)
- {
- if (element is null) continue;
- if (element.Period != period)
- {
- if (has) break;
- continue;
- }
-
- WriteSimpleInfo(element, Arguments.Has("en"));
- }
- }
- else if (s.Equals("help", StringComparison.OrdinalIgnoreCase) || s.Equals("?", StringComparison.Ordinal))
- {
- WriteHelp(Arguments.Verb?.Key, "period");
- }
- else
- {
- WriteError(" The period should be a natural number.");
- }
-
- return;
- }
-
- var q = Arguments.GetMergedValue("q")?.Trim();
- if (q.Length < 1) q = null;
-
- if (s == "*" || s == "all" || s == "a")
- {
- foreach (var i in ChemicalElement.Where(GetFilter(q)))
- {
- WriteSimpleInfo(i, Arguments.Has("en"));
- }
-
- return;
- }
-
- if (s == "ls" || s == "l" || s == "list" || s == "dir" || s == "全部")
- {
- var filter = Arguments.Verb.TryGet(1)?.Trim()?.Split('-');
- List col = null;
- if (filter is null || filter.Length < 1 || string.IsNullOrWhiteSpace(filter[0]))
- {
- }
- else if (filter[0].Equals("help", StringComparison.OrdinalIgnoreCase) || filter[0].Equals("?", StringComparison.Ordinal))
- {
- WriteHelp(Arguments.Verb?.Key, "ls");
- return;
- }
- else if (!int.TryParse(filter[0], out var begin))
- {
- }
- else if (filter.Length == 1)
- {
- col = ChemicalElement.Range(0, begin).ToList();
- }
- else if (filter.Length == 2 && int.TryParse(filter[1], out var end))
- {
- col = ChemicalElement.Range(begin, end - begin).ToList();
- }
-
- if (col is null)
- col = ChemicalElement.Where(null).ToList();
- var filter2 = GetFilter(q);
- foreach (var i in filter2 is null ? col : col.Where(filter2))
- {
- WriteSimpleInfo(i, Arguments.Has("en"));
- }
-
- return;
- }
-
- if (s == "molecular" || s == "formula" || s == "分子")
- {
- s = Arguments.Verb.Value?.Trim() ?? string.Empty;
- if (s.StartsWith("molecular ")) s = s.Substring(10)?.Trim();
- if (s.StartsWith("formula ")) s = s.Substring(8)?.Trim();
- if (s.Length < 1 || s == "molecular" || s == "formula")
- {
- console.WriteLine(EmptyTips ?? "Empty");
- return;
- }
-
- var m = MolecularFormula.TryParse(s);
- if (m is null)
- {
- if (s.Equals("help", StringComparison.OrdinalIgnoreCase) || s.Equals("?", StringComparison.Ordinal))
- WriteHelp(Arguments.Verb?.Key, "molecular");
- else
- WriteError(" Invalid molecular formula.");
- return;
- }
-
- console.WriteLine(m.ToString());
- var col = new List();
- var style = ChemicalElementStyle ?? new();
- var numberStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var nameStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.NameConsoleColor,
- ForegroundRgbColor = style.NameRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var symbolStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.SymbolConsoleColor,
- ForegroundRgbColor = style.SymbolRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var keyStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PropertyKeyConsoleColor,
- ForegroundRgbColor = style.PropertyKeyRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var valueStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PropertyValueConsoleColor,
- ForegroundRgbColor = style.PropertyValueRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- foreach (var ele in m.Zip())
- {
- if (ele.Element is null) continue;
- var name = Arguments.Has("en") ? ele.Element.EnglishName : ele.Element.Name;
- col.Add($"{ele.Element.AtomicNumber:g}\t", numberStyle);
- col.Add(ele.Element.Symbol, symbolStyle);
- col.Add($"\t{name}", nameStyle);
- if (name.Length < 8) col.Add('\t', 1, punctuationStyle);
- col.Add(" \tx ", punctuationStyle);
- col.Add(ele.Count.ToString("g"), valueStyle);
- col.AddNewLine();
- }
-
- col.Add("Proton numbers \t", keyStyle);
- col.Add(m.ProtonNumber.ToString("g"), valueStyle);
- col.AddNewLine();
- col.Add("Atom count \t", keyStyle);
- col.Add(m.Count.ToString("g"), valueStyle);
- col.AddNewLine();
- if (m.IsIon)
- {
- col.Add("Charge number \t", keyStyle);
- col.Add(m.ChargeNumber.ToString("g"), valueStyle);
- col.AddNewLine();
- }
-
- console.Write(col);
- return;
- }
-
- if (s == "periodic" || s == "table" || s == "t" || s == "元素周期表" || s == "周期表")
- {
- ChemistryCommandLine.WriteTable(GetConsole(), ChemicalElementStyle);
- return;
- }
-
- if (s == "help" || s == "get-help" || s == "usages" || s == "?" || s == "帮助")
- {
- WriteHelp(Arguments.Verb.Key, Arguments.Verb.TryGet(1));
- return;
- }
-
- if (s == "name")
- {
- console.WriteLine(ChemistryResource.Chemistry);
- return;
- }
-
- if (s == "element" || s == "get-element" || s == "z" || s == "元素" || (s == "Z" && Arguments.Verb.Count > 1))
- {
- s = Arguments.Verb.TryGet(1);
- if (s.Equals("help", StringComparison.Ordinal) || s.Equals("?", StringComparison.Ordinal))
- {
- WriteHelp(Arguments.Verb?.Key, "element");
- return;
- }
-
- if (s.Equals("name", StringComparison.Ordinal))
- {
- console.WriteLine(ChemistryResource.ChemicalElement);
- return;
- }
- }
- else
- {
- s = null;
- }
-
- if (string.IsNullOrEmpty(s))
- s = Arguments.Get("element", "number", "z", "e", "symbol", "s")?.MergedValue?.Trim();
- if (string.IsNullOrEmpty(s))
- s = Arguments.Verb?.TryGet(0);
- if (string.IsNullOrEmpty(s))
- {
- console.WriteLine(ChemistryResource.ChemicalElement);
- var elements = ChemicalElement.Where(GetFilter(q)).ToList();
- if (elements.Count <= 64)
- {
- foreach (var i in elements)
- {
- WriteSimpleInfo(i, Arguments.Has("en"));
- }
- }
- else if (Arguments.Has("en"))
- {
- var i = 0;
- var style = ChemicalElementStyle ?? new();
- var numberStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var nameStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.NameConsoleColor,
- ForegroundRgbColor = style.NameRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var col = new List();
- foreach (var element in elements)
- {
- if (element is null || element.AtomicNumber < 0) continue;
- i++;
- if (element.AtomicNumber < 1000)
- {
- ChemistryCommandLine.AppendNumber(col, element.AtomicNumber, numberStyle);
- }
- else
- {
- col.Add(element.AtomicNumber.ToString("g"), numberStyle);
- col.Add(' ', 1, numberStyle);
- }
-
- col.Add(element.EnglishName ?? element.Symbol ?? string.Empty, nameStyle);
- if (i % 3 == 0)
- {
- col.AddNewLine();
- continue;
- }
-
- col.Add(' ', Math.Max(1, 24 - col[col.Count - 1].Length - col[col.Count - 2].Length - col[col.Count - 3].Length), punctuationStyle);
- }
-
- if (i % 3 > 0) col.AddNewLine();
- GetConsole().Write(col);
- }
- else
- {
- var start = false;
- var style = ChemicalElementStyle ?? new();
- var numberStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.AtomicNumberConsoleColor,
- ForegroundRgbColor = style.AtomicNumberRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var nameStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.NameConsoleColor,
- ForegroundRgbColor = style.NameRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var symbolStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.SymbolConsoleColor,
- ForegroundRgbColor = style.SymbolRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var punctuationStyle = new ConsoleTextStyle
- {
- ForegroundConsoleColor = style.PunctuationConsoleColor,
- ForegroundRgbColor = style.PunctuationRgbColor,
- BackgroundConsoleColor = style.BackgroundConsoleColor,
- BackgroundRgbColor = style.BackgroundRgbColor
- };
- var col = new List();
- foreach (var element in elements)
- {
- if (element is null) continue;
- if (start) col.Add(" \t", punctuationStyle);
- else start = true;
- col.Add(element.Name, nameStyle);
- col.Add(" (", punctuationStyle);
- if (element.AtomicNumber < 1)
- col.Add('?', 1, numberStyle);
- else
- col.Add(element.AtomicNumber.ToString("g"), numberStyle);
-
- if (!element.Name.Equals(element.Symbol, StringComparison.OrdinalIgnoreCase)
- && !"?".Equals(element.Symbol, StringComparison.OrdinalIgnoreCase))
- {
- col.Add(' ', 1, punctuationStyle);
- col.Add(element.Symbol, symbolStyle);
- }
-
- col.Add(')', 1, punctuationStyle);
- }
-
- col.AddNewLine();
- GetConsole().Write(col);
- }
- return;
- }
-
- var eles = s.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries).Distinct().Select(i => ChemicalElement.Get(i)).Where(i => i != null).Distinct().ToList();
- if (eles.Count < 1)
- {
- console.WriteLine(ConsoleColor.Red, NotFoundTips ?? "Not found.");
- return;
- }
-
- if (eles.Count == 1)
- {
- WriteInfo(eles[0], true);
- return;
- }
-
- if (eles.Count < 4)
- {
- WriteInfo(eles[0]);
- GetConsole().WriteLine();
- WriteInfo(eles[1]);
- if (eles.Count > 2)
- {
- GetConsole().WriteLine();
- WriteInfo(eles[2]);
- }
-
- return;
- }
-
- var filter3 = GetFilter(q);
- foreach (var i in filter3 is null ? eles : eles.Where(filter3))
- {
- WriteSimpleInfo(i, Arguments.Has("en"));
- }
- }
-
- ///
- protected override void OnGetHelp()
- {
- WriteHelp(Arguments.Verb?.Key, Arguments.Verb?.TryGet(0));
- }
-
- private void WriteInfo(ChemicalElement element, bool containIsotopes = false)
- {
- var col = ChemistryCommandLine.ToConsoleText(ChemicalElementStyle, element, containIsotopes);
- GetConsole().Write(col);
- }
-
- private void WriteSimpleInfo(ChemicalElement element, bool writeEnglishName)
- {
- var col = ChemistryCommandLine.ToSimpleConsoleText(ChemicalElementStyle, element, writeEnglishName);
- GetConsole().Write(col);
- }
-
- private void WriteError(string message)
- => GetConsole().WriteLine(new List
- {
- {
- ErrorTips ?? "Error!",
- new ConsoleTextStyle
- {
- ForegroundConsoleColor = ConsoleColor.Red
- }
- },
- message
- });
-
- private void WriteHelp(string verb, string key = null)
- {
- var console = GetConsole();
- verb = verb?.Trim();
- if (string.IsNullOrEmpty(verb)) verb = "~";
-#if NETFRAMEWORK
- var lsKey = "dir";
-#else
- var lsKey = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows) ? "dir" : "ls";
-#endif
- switch (key?.Trim() ?? string.Empty)
- {
- case "":
- break;
- case "get-element":
- case "element":
- case "z":
- case "Z":
- case "元素":
- WriteTips(verb, "element ", ElementTips, "Get details of the specific chemical element by symbol or atomic numbers.");
- console.WriteLine();
- console.WriteLine(ExamplesTips ?? "EXAMPLES");
- console.WriteLine();
- console.WriteLine(verb + " element 6");
- console.WriteLine("{0} element {1}", verb, ChemicalElement.Au?.Symbol ?? ChemicalElement.Pt?.Symbol ?? ChemicalElement.O?.Symbol ?? "1");
- return;
- case "periodic":
- case "table":
- case "周期表":
- case "元素周期表":
- WriteTips(verb, "table", PeriodicTableTips, "Output the periodic table.");
- return;
- case "period":
- case "周期":
- case "Period":
- WriteTips(verb, "period ", PeriodTips, "List chemical elements in the specific period.");
- console.WriteLine();
- console.WriteLine(ExamplesTips ?? "EXAMPLES");
- console.WriteLine();
- console.WriteLine(verb + " period 2");
- console.WriteLine(verb + " period 7");
- return;
- case "*":
- case "all":
- WriteTips(verb, "all", AllElementsTips, "List all chemical elements.");
- return;
- case "ls":
- case "list":
- case "dir":
- case "全部":
- WriteTips(verb, lsKey + " -", ElementListTips, "List a speicific range of chemical elements.");
- console.WriteLine();
- console.WriteLine(ExamplesTips ?? "EXAMPLES");
- console.WriteLine();
- console.WriteLine("{0} {1} 10-29", verb, lsKey);
- console.WriteLine("{0} {1} 20", verb, lsKey);
- console.WriteLine("{0} {1} 80 -q h", verb, lsKey);
- return;
- case "molecular":
- case "formula":
- case "分子":
- WriteTips(verb, "molecular ", MolecularFormulaTips, "Get the information of the specific molecular formula.");
- console.WriteLine();
- console.WriteLine(ExamplesTips ?? "EXAMPLES");
- console.WriteLine();
- console.WriteLine(verb + " molecular Fe3O4");
- console.WriteLine(verb + " molecular R-COOH");
- return;
- case "about":
- case "copyright":
- if (!ChemistryResource.Chemistry.Equals("Chemistry", StringComparison.Ordinal))
- console.WriteLine(ChemistryResource.Chemistry);
- var ver = System.Reflection.Assembly.GetExecutingAssembly()?.GetName()?.Version;
- console.WriteLine(System.Drawing.Color.FromArgb(0xF0, 0xAA, 0xBB), "Trivial.Chemistry");
- var sb = new StringBuilder();
- if (ver != null)
- {
- sb.AppendFormat("{0}.{1}.{2}", ver.Major, ver.Minor, ver.Build);
- sb.AppendLine();
- }
-
- sb.AppendLine("Copyright (c) 2021 Kingcean Tuan. All rights reserved.");
- sb.AppendLine("MIT licensed.");
- console.Write(sb.ToString());
- return;
- default:
- break;
- }
-
- var s = HelpInfo?.Trim();
- if (!string.IsNullOrEmpty(s))
- {
- console.WriteLine(s);
- console.WriteLine();
- }
-
- console.WriteLine(UsagesTips ?? "USAGES");
- console.WriteLine();
- WriteTips(verb, "element ", ElementTips, "Get details of the specific chemical element by symbol or atomic numbers.");
- console.WriteLine();
- WriteTips(verb, "table", PeriodicTableTips, "Output the periodic table.");
- console.WriteLine();
- WriteTips(verb, "period ", PeriodTips, "List chemical elements in the specific period.");
- console.WriteLine();
- WriteTips(verb, "all", AllElementsTips, "List all chemical elements.");
- console.WriteLine();
- WriteTips(verb, lsKey + " -", ElementListTips, "List a speicific range of chemical elements.");
- console.WriteLine();
- WriteTips(verb, "molecular ", MolecularFormulaTips, "Get the information of the specific molecular formula.");
- }
-
- private void WriteTips(string verb, string cmd, string desc, string descBackup)
- {
- GetConsole().WriteLine(VerbColorInHelp, $"{verb} {cmd}");
- GetConsole().WriteLine($" {desc ?? descBackup}");
- }
-
- private static Func GetFilter(string q)
- {
- if (string.IsNullOrEmpty(q)) return null;
- return (ChemicalElement ele) =>
- {
-#if NETFRAMEWORK
- if (string.IsNullOrEmpty(ele?.EnglishName)) return false;
- if (ele.EnglishName.Contains(q)) return true;
- var name = ele.Name;
- if (string.IsNullOrEmpty(name) || name == ele.EnglishName) return false;
- return name.Contains(q);
-#else
- if (string.IsNullOrEmpty(ele?.EnglishName)) return false;
- if (ele.EnglishName.Contains(q, StringComparison.OrdinalIgnoreCase)) return true;
- var name = ele.Name;
- if (string.IsNullOrEmpty(name) || name == ele.EnglishName) return false;
- return name.Contains(q, StringComparison.OrdinalIgnoreCase);
-#endif
- };
- }
-#pragma warning restore IDE0057
-}
diff --git a/Chemistry/PeriodicTable.json b/Chemistry/PeriodicTable.json
deleted file mode 100644
index 9c153b58..00000000
--- a/Chemistry/PeriodicTable.json
+++ /dev/null
@@ -1,710 +0,0 @@
-[
- {
- "symbol": "H",
- "name": "Hydrogen",
- "weight": 1.008,
- "isotopes": [ 1.00782503223, 2.01410177812, 3.0160492779, 4.02643, 5.035311, 6.04496, 7.0527 ]
- },
- {
- "symbol": "He",
- "name": "Helium",
- "weight": 4.002602,
- "isotopes": [ 3.0160293201, 4.00260325413, 5.012057, 6.018885891, 7.0279907, 8.03393439, 9.043946, 10.05279 ]
- },
- {
- "symbol": "Li",
- "name": "Lithium",
- "weight": 6.94,
- "isotopes": [ 3.0308, 4.02719, 5.012538, 6.0151228874, 7.0160034366, 8.022486246, 9.02679019, 10.035483, 11.04372358, 12.052517, 13.06263 ]
- },
- {
- "symbol": "Be",
- "name": "Beryllium",
- "weight": 9.0121831,
- "isotopes": [ 5.0399, 6.0197264, 7.016928717, 8.005305102, 9.012183065, 10.013534695, 11.02166108, 12.0269221, 13.036135, 14.04289, 15.05342, 16.06167 ]
- },
- {
- "symbol": "B",
- "name": "Boron",
- "weight": 10.81,
- "isotopes": [ 6.0508, 7.029712, 8.0246073, 9.01332965, 10.01293695, 11.00930536, 12.0143527, 13.0177802, 14.025404, 15.031088, 16.039842, 17.04699, 18.05566, 19.0631, 20.07207, 21.08129 ]
- },
- {
- "symbol": "C",
- "name": "Carbon",
- "weight": 12.011,
- "isotopes": [ 8.037643, 9.0310372, 10.01685331, 11.0114336, 12, 13.00335483507, 14.0032419884, 15.01059926, 16.0147013, 17.022577, 18.026751, 19.0348, 20.04032, 21.049, 22.05753, 23.0689 ]
- },
- {
- "symbol": "N",
- "name": "Nitrogen",
- "weight": 14.007,
- "isotopes": [ 10.04165, 11.026091, 12.0186132, 13.00573861, 14.00307400443, 15.00010889888, 16.0061019, 17.008449, 18.014078, 19.017022, 20.023366, 21.02711, 22.03439, 23.04114, 24.05039, 25.0601 ]
- },
- {
- "symbol": "O",
- "name": "Oxygen",
- "weight": 15.999,
- "isotopes": [ 12.034262, 13.024815, 14.00859636, 15.00306562, 15.99491461957, 16.9991317565, 17.99915961286, 19.003578, 20.00407535, 21.008655, 22.009966, 23.015696, 24.01986, 25.02936, 26.03729, 27.04772, 28.05591 ]
- },
- {
- "symbol": "F",
- "name": "Fluorine",
- "weight": 18.998403163,
- "isotopes": [ 14.034315, 15.018043, 16.0114657, 17.00209524, 18.00093733, 18.99840316273, 19.999981252, 20.9999489, 22.002999, 23.003557, 24.008115, 25.012199, 26.020038, 27.02644, 28.03534, 29.04254, 30.05165, 31.05971 ]
- },
- {
- "symbol": "Ne",
- "name": "Neon",
- "weight": 20.1797,
- "isotopes": [ 16.02575, 17.01771396, 18.0057087, 19.00188091, 19.9924401762, 20.993846685, 21.991385114, 22.99446691, 23.99361065, 24.997789, 26.000515, 27.007553, 28.01212, 29.01975, 30.02473, 31.0331, 32.03972, 33.04938, 34.05673 ]
- },
- {
- "symbol": "Na",
- "name": "Sodium",
- "weight": 22.98976928,
- "isotopes": [ 18.02688, 19.01388, 20.0073544, 20.99765469, 21.99443741, 22.989769282, 23.99096295, 24.989954, 25.9926346, 26.9940765, 27.998939, 29.0028771, 30.0090979, 31.013163, 32.02019, 33.02573, 34.03359, 35.04062, 36.04929, 37.05705 ]
- },
- {
- "symbol": "Mg",
- "name": "Magnesium",
- "weight": 24.305,
- "isotopes": [ 19.034169, 20.01885, 21.011716, 21.99957065, 22.99412421, 23.985041697, 24.985836976, 25.982592968, 26.984340624, 27.9838767, 28.988617, 29.9904629, 30.996648, 31.9991102, 33.0053271, 34.008935, 35.01679, 36.02188, 37.03037, 38.03658, 39.04538, 40.05218 ]
- },
- {
- "symbol": "Al",
- "name": "Aluminium",
- "weight": 26.9815384,
- "isotopes": [ 21.02897, 22.01954, 23.00724435, 23.9999489, 24.9904281, 25.986891904, 26.98153853, 27.98191021, 28.9804565, 29.98296, 30.983945, 31.988085, 32.990909, 33.996705, 34.999764, 36.00639, 37.01053, 38.0174, 39.02254, 40.03003, 41.03638, 42.04384, 43.05147 ]
- },
- {
- "symbol": "Si",
- "name": "Silicon",
- "weight": 28.085,
- "isotopes": [ 22.03579, 23.02544, 24.011535, 25.004109, 25.99233384, 26.98670481, 27.97692653465, 28.9764946649, 29.973770136, 30.975363194, 31.97415154, 32.97797696, 33.978576, 34.984583, 35.986695, 36.992921, 37.995523, 39.002491, 40.00583, 41.01301, 42.01778, 43.0248, 44.03061, 45.03995 ]
- },
- {
- "symbol": "P",
- "name": "Phosphorus",
- "weight": 30.973761998,
- "isotopes": [ 24.03577, 25.02119, 26.01178, 26.999224, 27.9923266, 28.98180079, 29.97831375, 30.97376199842, 31.973907643, 32.9717257, 33.97364589, 34.9733141, 35.97826, 36.979607, 37.984252, 38.986227, 39.99133, 40.994654, 42.00108, 43.00502, 44.01121, 45.01645, 46.02446, 47.03139 ]
- },
- {
- "symbol": "S",
- "name": "Sulfur",
- "weight": 32.06,
- "isotopes": [ 26.02907, 27.01828, 28.00437, 28.996611, 29.98490703, 30.97955701, 31.9720711744, 32.9714589098, 33.967867004, 34.96903231, 35.96708071, 36.97112551, 37.9711633, 38.975134, 39.9754826, 40.9795935, 41.9810651, 42.9869076, 43.9901188, 44.99572, 46.00004, 47.00795, 48.0137, 49.02276 ]
- },
- {
- "symbol": "Cl",
- "name": "Chlorine",
- "weight": 35.45,
- "isotopes": [ 28.02954, 29.01478, 30.00477, 30.992414, 31.98568464, 32.97745199, 33.973762485, 34.968852682, 35.968306809, 36.965902602, 37.96801044, 38.9680082, 39.970415, 40.970685, 41.97325, 42.97389, 43.97787, 44.98029, 45.98517, 46.98916, 47.99564, 49.00123, 50.00905, 51.01554 ]
- },
- {
- "symbol": "Ar",
- "name": "Argon",
- "weight": 39.95,
- "isotopes": [ 30.02307, 31.01212, 31.9976378, 32.98992555, 33.98027009, 34.97525759, 35.967545105, 36.96677633, 37.96273211, 38.964313, 39.9623831237, 40.96450057, 41.9630457, 42.9656361, 43.9649238, 44.96803973, 45.968083, 46.972935, 47.97591, 48.9819, 49.98613, 50.9937, 51.99896, 53.00729 ]
- },
- {
- "symbol": "K",
- "name": "Potassium",
- "weight": 39.0983,
- "isotopes": [ 32.02265, 33.00756, 33.99869, 34.98800541, 35.98130201, 36.97337589, 37.96908112, 38.9637064864, 39.963998166, 40.9618252579, 41.96240231, 42.9607347, 43.96158699, 44.96069149, 45.96198159, 46.9616616, 47.96534119, 48.96821075, 49.97238, 50.975828, 51.98224, 52.98746, 53.99463, 55.00076, 56.00851 ]
- },
- {
- "symbol": "Ca",
- "name": "Calcium",
- "weight": 40.078,
- "isotopes": [ 34.01487, 35.00514, 35.993074, 36.98589785, 37.97631922, 38.97071081, 39.962590863, 40.96227792, 41.95861783, 42.95876644, 43.95548156, 44.95618635, 45.953689, 46.9545424, 47.95252276, 48.95566274, 49.9574992, 50.960989, 51.963217, 52.96945, 53.9734, 54.9803, 55.98508, 56.99262, 57.99794 ]
- },
- {
- "symbol": "Sc",
- "name": "Scandium",
- "weight": 44.955908,
- "isotopes": [ 36.01648, 37.00374, 37.99512, 38.984785, 39.9779673, 40.969251105, 41.96551653, 42.9611505, 43.9594029, 44.95590828, 45.95516826, 46.9524037, 47.9522236, 48.9500146, 49.952176, 50.953592, 51.95688, 52.95909, 53.96393, 54.96782, 55.97345, 56.97777, 57.98403, 58.98894, 59.99565, 61.001 ]
- },
- {
- "symbol": "Ti",
- "name": "Titanium",
- "weight": 47.867,
- "isotopes": [ 38.01145, 39.00236, 39.9905, 40.983148, 41.97304903, 42.9685225, 43.95968995, 44.95812198, 45.95262772, 46.95175879, 47.94794198, 48.94786568, 49.94478689, 50.94661065, 51.946893, 52.94973, 53.95105, 54.95527, 55.95791, 56.96364, 57.9666, 58.97247, 59.97603, 60.98245, 61.98651, 62.99375 ]
- },
- {
- "symbol": "V",
- "name": "Vanadium",
- "weight": 50.9415,
- "isotopes": [ 40.01276, 41.00021, 41.99182, 42.980766, 43.97411, 44.9657748, 45.96019878, 46.95490491, 47.9522522, 48.9485118, 49.94715601, 50.94395704, 51.94477301, 52.9443367, 53.946439, 54.94724, 55.95048, 56.95252, 57.95672, 58.95939, 59.96431, 60.96725, 61.97265, 62.97639, 63.98264, 64.9875, 65.99398 ]
- },
- {
- "symbol": "Cr",
- "name": "Chromium",
- "weight": 51.9961,
- "isotopes": [ 42.0067, 42.99753, 43.98536, 44.97905, 45.968359, 46.9628974, 47.9540291, 48.9513333, 49.94604183, 50.94476502, 51.94050623, 52.94064815, 53.93887916, 54.94083843, 55.9406531, 56.943613, 57.94435, 58.94859, 59.95008, 60.95442, 61.9561, 62.96165, 63.96408, 64.96996, 65.97366, 66.98016, 67.98403 ]
- },
- {
- "symbol": "Mn",
- "name": "Manganese",
- "weight": 54.938043,
- "isotopes": [ 44.00715, 44.99449, 45.98609, 46.975775, 47.96852, 48.959595, 49.95423778, 50.94820847, 51.9455639, 52.94128889, 53.9403576, 54.93804391, 55.93890369, 56.9382861, 57.9400666, 58.9403911, 59.9431366, 60.9444525, 61.94795, 62.9496647, 63.9538494, 64.9560198, 65.960547, 66.96424, 67.96962, 68.97366, 69.97937, 70.98368 ]
- },
- {
- "symbol": "Fe",
- "name": "Iron",
- "weight": 55.845,
- "isotopes": [ 45.01442, 46.00063, 46.99185, 47.98023, 48.973429, 49.962975, 50.956841, 51.9481131, 52.9453064, 53.93960899, 54.93829199, 55.93493633, 56.93539284, 57.93327443, 58.93487434, 59.9340711, 60.9367462, 61.9367918, 62.9402727, 63.9409878, 64.9450115, 65.94625, 66.95054, 67.95295, 68.95807, 69.96102, 70.96672, 71.96983, 72.97572, 73.97935 ]
- },
- {
- "symbol": "Co",
- "name": "Cobalt",
- "weight": 58.933194,
- "isotopes": [ 47.01057, 48.00093, 48.98891, 49.98091, 50.970647, 51.96351, 52.9542041, 53.94845987, 54.9419972, 55.9398388, 56.93629057, 57.9357521, 58.93319429, 59.9338163, 60.93247662, 61.934059, 62.9336, 63.935811, 64.9364621, 65.939443, 66.9406096, 67.94426, 68.94614, 69.94963, 70.95237, 71.95729, 72.96039, 73.96515, 74.96876, 75.97413 ]
- },
- {
- "symbol": "Ni",
- "name": "Nickel",
- "weight": 58.6934,
- "isotopes": [ 48.01769, 49.0077, 49.99474, 50.98611, 51.9748, 52.96819, 53.957892, 54.95133063, 55.94212855, 56.93979218, 57.93534241, 58.9343462, 59.93078588, 60.93105557, 61.92834537, 62.92966963, 63.92796682, 64.93008517, 65.9291393, 66.9315694, 67.9318688, 68.9356103, 69.9364313, 70.940519, 71.9417859, 72.9462067, 73.94798, 74.9525, 75.95533, 76.96055, 77.96336, 78.97025 ]
- },
- {
- "symbol": "Cu",
- "name": "Copper",
- "weight": 63.546,
- "isotopes": [ 51.99671, 52.98459, 53.97666, 54.96604, 55.95895, 56.9492125, 57.94453305, 58.93949748, 59.9373645, 60.9334576, 61.93259541, 62.92959772, 63.92976434, 64.9277897, 65.92886903, 66.9277303, 67.9296109, 68.9294293, 69.9323921, 70.9326768, 71.9358203, 72.9366744, 73.9398749, 74.9415226, 75.945275, 76.94792, 77.95223, 78.95502, 79.96089, 80.96587, 81.97244 ]
- },
- {
- "symbol": "Zn",
- "name": "Zinc",
- "weight": 65.38,
- "isotopes": [ 53.99204, 54.98398, 55.97254, 56.96506, 57.954591, 58.94931266, 59.9418421, 60.939507, 61.93433397, 62.9332115, 63.92914201, 64.92924077, 65.92603381, 66.92712775, 67.92484455, 68.9265507, 69.9253192, 70.9277196, 71.9268428, 72.9295826, 73.9294073, 74.9328402, 75.933115, 76.9368872, 77.9382892, 78.9426381, 79.9445529, 80.9504026, 81.95426, 82.96056, 83.96521, 84.97226 ]
- },
- {
- "symbol": "Ga",
- "name": "Gallium",
- "weight": 69.723,
- "isotopes": [ 55.99536, 56.9832, 57.97478, 58.96353, 59.95729, 60.949399, 61.94419025, 62.9392942, 63.9368404, 64.93273459, 65.9315894, 66.9282025, 67.9279805, 68.9255735, 69.9260219, 70.92470258, 71.92636747, 72.9251747, 73.9269457, 74.9265002, 75.9288276, 76.9291543, 77.9316088, 78.9328523, 79.9364208, 80.9381338, 81.9431765, 82.9471203, 83.95246, 84.95699, 85.96301, 86.96824 ]
- },
- {
- "symbol": "Ge",
- "name": "Germanium",
- "weight": 72.63,
- "isotopes": [ 57.99172, 58.98249, 59.97036, 60.96379, 61.95502, 62.949628, 63.9416899, 64.9393681, 65.9338621, 66.9327339, 67.9280953, 68.9279645, 69.92424875, 70.92495233, 71.922075826, 72.923458956, 73.921177761, 74.92285837, 75.921402726, 76.923549843, 77.9228529, 78.92536, 79.9253508, 80.9288329, 81.929774, 82.9345391, 83.9375751, 84.9429697, 85.94658, 86.95268, 87.95691, 88.96379, 89.96863 ]
- },
- {
- "symbol": "As",
- "name": "Arsenic",
- "weight": 74.921595,
- "isotopes": [ 59.99388, 60.98112, 61.97361, 62.9639, 63.95743, 64.949611, 65.9441488, 66.93925111, 67.9367741, 68.932246, 69.930926, 70.9271138, 71.9267523, 72.9238291, 73.9239286, 74.92159457, 75.92239202, 76.9206476, 77.921828, 78.9209484, 79.9224746, 80.9221323, 81.9247412, 82.9252069, 83.9293033, 84.9321637, 85.9367015, 86.9402917, 87.94555, 88.94976, 89.95563, 90.96039, 91.96674 ]
- },
- {
- "symbol": "Se",
- "name": "Selenium",
- "weight": 78.971,
- "isotopes": [ 63.97109, 64.9644, 65.95559, 66.949994, 67.94182524, 68.9394148, 69.9335155, 70.9322094, 71.9271405, 72.9267549, 73.922475934, 74.92252287, 75.919213704, 76.919914154, 77.91730928, 78.91849929, 79.9165218, 80.917993, 81.9166995, 82.9191186, 83.9184668, 84.9222608, 85.9243117, 86.9286886, 87.9314175, 88.9366691, 89.9401, 90.94596, 91.94984, 92.95629, 93.96049, 94.9673 ]
- },
- {
- "symbol": "Br",
- "name": "Bromine",
- "weight": 79.904,
- "isotopes": [ 66.96465, 67.95873, 68.950497, 69.944792, 70.9393422, 71.9365886, 72.9316715, 73.9299102, 74.9258105, 75.924542, 76.9213792, 77.9211459, 78.9183376, 79.9185298, 80.9162897, 81.9168032, 82.9151756, 83.916496, 84.9156458, 85.9188054, 86.920674, 87.9240833, 88.9267046, 89.9312928, 90.9343986, 91.9396316, 92.94313, 93.9489, 94.95301, 95.95903, 96.96344, 97.96946 ]
- },
- {
- "symbol": "Kr",
- "name": "Krypton",
- "weight": 83.798,
- "isotopes": [ 68.96518, 69.95604, 70.95027, 71.9420924, 72.9392892, 73.933084, 74.9309457, 75.9259103, 76.92467, 77.92036494, 78.9200829, 79.91637808, 80.9165912, 81.91348273, 82.91412716, 83.9114977282, 84.9125273, 85.9106106269, 86.91335476, 87.9144479, 88.9178355, 89.9195279, 90.9238063, 91.9261731, 92.9311472, 93.93414, 94.939711, 95.943017, 96.94909, 97.95243, 98.95839, 99.96237, 100.96873 ]
- },
- {
- "symbol": "Rb",
- "name": "Rubidium",
- "weight": 85.4678,
- "isotopes": [ 70.96532, 71.95908, 72.95053, 73.9442659, 74.9385732, 75.935073, 76.9304016, 77.9281419, 78.9239899, 79.9225164, 80.9189939, 81.918209, 82.9151142, 83.9143752, 84.9117897379, 85.91116743, 86.909180531, 87.91131559, 88.9122783, 89.9147985, 90.9165372, 91.9197284, 92.9220393, 93.9263948, 94.92926, 95.9341334, 96.9371771, 97.9416869, 98.94503, 99.95003, 100.95404, 101.95952, 102.96392 ]
- },
- {
- "symbol": "Sr",
- "name": "Strontium",
- "weight": 87.62,
- "isotopes": [ 72.9657, 73.95617, 74.94995, 75.941763, 76.9379455, 77.93218, 78.9297077, 79.9245175, 80.9232114, 81.9183999, 82.9175544, 83.9134191, 84.912932, 85.9092606, 86.9088775, 87.9056125, 88.9074511, 89.90773, 90.9101954, 91.9110382, 92.9140242, 93.9153556, 94.9193529, 95.9217066, 96.926374, 97.9286888, 98.9328907, 99.93577, 100.940352, 101.943791, 102.94909, 103.95265, 104.95855, 105.96265, 106.96897 ]
- },
- {
- "symbol": "Y",
- "name": "Yttrium",
- "weight": 88.90584,
- "isotopes": [ 75.95856, 76.949781, 77.94361, 78.93735, 79.9343561, 80.9294556, 81.9269314, 82.922485, 83.9206721, 84.916433, 85.914886, 86.9108761, 87.9095016, 88.9058403, 89.9071439, 90.9072974, 91.9089451, 92.909578, 93.9115906, 94.9128161, 95.9158968, 96.9182741, 97.9223821, 98.924148, 99.927715, 100.9301477, 101.9343277, 102.937243, 103.94196, 104.94544, 105.95056, 106.95452, 107.95996, 108.96436 ]
- },
- {
- "symbol": "Zr",
- "name": "Zirconium",
- "weight": 91.224,
- "isotopes": [ 77.95566, 78.94948, 79.9404, 80.93731, 81.93135, 82.9292421, 83.9233269, 84.9214444, 85.9162972, 86.914818, 87.9102213, 88.9088814, 89.9046977, 90.9056396, 91.9050347, 92.9064699, 93.9063108, 94.9080385, 95.9082714, 96.9109512, 97.9127289, 98.916667, 99.9180006, 100.921448, 101.9231409, 102.927191, 103.929436, 104.934008, 105.93676, 106.94174, 107.94487, 108.95041, 109.95396, 110.95968, 111.9637 ]
- },
- {
- "symbol": "Nb",
- "name": "Niobium",
- "weight": 92.90637,
- "isotopes": [ 80.9496, 81.94396, 82.93729, 83.93449, 84.9288458, 85.9257828, 86.9206937, 87.918222, 88.913445, 89.9112584, 90.9069897, 91.9071881, 92.906373, 93.9072788, 94.9068324, 95.9080973, 96.9080959, 97.9103265, 98.911613, 99.9143276, 100.9153103, 101.9180772, 102.9194572, 103.9228925, 104.9249465, 105.9289317, 106.9315937, 107.9360748, 108.93922, 109.94403, 110.94753, 111.95247, 112.95651, 113.96201, 114.96634 ]
- },
- {
- "symbol": "Mo",
- "name": "Molybdenum",
- "weight": 95.95,
- "isotopes": [ 82.94988, 83.94149, 84.938261, 85.9311748, 86.9281962, 87.9219678, 88.9194682, 89.9139309, 90.9117453, 91.90680796, 92.90680958, 93.9050849, 94.90583877, 95.90467612, 96.90601812, 97.90540482, 98.90770851, 99.9074718, 100.9103414, 101.9102834, 102.913079, 103.9137344, 104.916969, 105.918259, 106.922106, 107.924033, 108.928424, 109.930704, 110.935654, 111.93831, 112.94335, 113.94653, 114.95196, 115.95545, 116.96117 ]
- },
- {
- "symbol": "Tc",
- "name": "Technetium",
- "weight": 98,
- "isotopes": [ 84.95058, 85.94493, 86.9380672, 87.93378, 88.9276487, 89.9240739, 90.9184254, 91.9152698, 92.910246, 93.9096536, 94.9076536, 95.907868, 96.9063667, 97.9072124, 98.9062508, 99.9076539, 100.907309, 101.9092097, 102.909176, 103.911425, 104.911655, 105.914358, 106.9154606, 107.9184957, 108.920256, 109.923744, 110.925901, 111.9299458, 112.932569, 113.93691, 114.93998, 115.94476, 116.94806, 117.95299, 118.95666, 119.96187 ]
- },
- {
- "symbol": "Ru",
- "name": "Ruthenium",
- "weight": 101.07,
- "isotopes": [ 86.95069, 87.9416, 88.93762, 89.9303444, 90.9267419, 91.9202344, 92.9171044, 93.9113429, 94.910406, 95.90759025, 96.9075471, 97.9052868, 98.9059341, 99.9042143, 100.9055769, 101.9043441, 102.9063186, 103.9054275, 104.9077476, 105.9073291, 106.909972, 107.910188, 108.913326, 109.9140407, 110.91757, 111.918809, 112.922844, 113.9246136, 114.92882, 115.9312192, 116.9361, 117.93853, 118.94357, 119.94631, 120.95164, 121.95447, 122.95989, 123.96305 ]
- },
- {
- "symbol": "Rh",
- "name": "Rhodium",
- "weight": 102.90549,
- "isotopes": [ 88.95058, 89.94422, 90.93688, 91.9323677, 92.9259128, 93.9217305, 94.9158979, 95.914453, 96.911329, 97.910708, 98.9081282, 99.908117, 100.9061606, 101.9068374, 102.905498, 103.9066492, 104.9056885, 105.9072868, 106.906748, 107.908714, 108.9087488, 109.911079, 110.9116423, 111.914403, 112.9154393, 113.918718, 114.9203116, 115.924059, 116.9260354, 117.93034, 118.932557, 119.93686, 120.93942, 121.94399, 122.94685, 123.95151, 124.95469, 125.95946 ]
- },
- {
- "symbol": "Pd",
- "name": "Palladium",
- "weight": 106.42,
- "isotopes": [ 90.95032, 91.94088, 92.93651, 93.9290376, 94.9248898, 95.9182151, 96.916472, 97.9126983, 98.9117748, 99.908505, 100.9082864, 101.9056022, 102.9060809, 103.9040305, 104.9050796, 105.9034804, 106.9051282, 107.9038916, 108.9059504, 109.9051722, 110.90768968, 111.9073297, 112.910261, 113.9103686, 114.913659, 115.914297, 116.9179547, 117.9190667, 118.9233402, 119.9245511, 120.9289503, 121.930632, 122.93514, 123.93714, 124.94179, 125.94416, 126.94907, 127.95183 ]
- },
- {
- "symbol": "Ag",
- "name": "Silver",
- "weight": 107.8682,
- "isotopes": [ 92.95033, 93.94373, 94.93602, 95.930744, 96.92397, 97.92156, 98.9176458, 99.9161154, 100.912684, 101.9117047, 102.9089631, 103.9086239, 104.9065256, 105.9066636, 106.9050916, 107.9059503, 108.9047553, 109.9061102, 110.9052959, 111.9070486, 112.906573, 113.908823, 114.908767, 115.9113868, 116.911774, 117.9145955, 118.91557, 119.9187848, 120.920125, 121.923664, 122.925337, 123.92893, 124.93105, 125.93475, 126.93711, 127.94106, 128.94395, 129.9507 ]
- },
- {
- "symbol": "Cd",
- "name": "Cadmium",
- "weight": 112.414,
- "isotopes": [ 94.94994, 95.94034, 96.9351, 97.927389, 98.9249258, 99.9203488, 100.9185862, 101.914482, 102.9134165, 103.9098564, 104.9094639, 105.9064599, 106.9066121, 107.9041834, 108.9049867, 109.90300661, 110.90418287, 111.90276287, 112.90440813, 113.90336509, 114.90543751, 115.90476315, 116.907226, 117.906922, 118.909847, 119.9098681, 120.9129637, 121.9134591, 122.9168925, 123.9176574, 124.9212576, 125.9224291, 126.926472, 127.9278129, 128.93182, 129.93394, 130.9406, 131.94604, 132.95285 ]
- },
- {
- "symbol": "In",
- "name": "Indium",
- "weight": 114.818,
- "isotopes": [ 96.94934, 97.94214, 98.93411, 99.93096, 100.92634, 101.9241071, 102.9198819, 103.9182145, 104.914502, 105.913464, 106.91029, 107.9096935, 108.9071514, 109.90717, 110.9051085, 111.9055377, 112.90406184, 113.90491791, 114.903878776, 115.90525999, 116.9045157, 117.9063566, 118.9058507, 119.907967, 120.907851, 121.910281, 122.910434, 123.913182, 124.913605, 125.916507, 126.917446, 127.9204, 128.9218053, 129.924977, 130.9269715, 131.933001, 132.93831, 133.94454, 134.95005 ]
- },
- {
- "symbol": "Sn",
- "name": "Tin",
- "weight": 118.71,
- "isotopes": [ 98.94853, 99.9385, 100.93526, 101.93029, 102.928105, 103.9231052, 104.9212684, 105.9169574, 106.9157137, 107.9118943, 108.9112921, 109.907845, 110.9077401, 111.90482387, 112.9051757, 113.9027827, 114.903344699, 115.9017428, 116.90295398, 117.90160657, 118.90331117, 119.90220163, 120.9042426, 121.9034438, 122.9057252, 123.9052766, 124.9077864, 125.907659, 126.91039, 127.910507, 128.913465, 129.9139738, 130.917045, 131.9178267, 132.9239134, 133.9286821, 134.9349086, 135.93999, 136.94655, 137.95184 ]
- },
- {
- "symbol": "Sb",
- "name": "Antimony",
- "weight": 121.76,
- "isotopes": [ 102.93969, 103.93648, 104.931276, 105.928638, 106.9241506, 107.9222267, 108.9181411, 109.9168543, 110.9132182, 111.9124, 112.909375, 113.90929, 114.906598, 115.9067931, 116.9048415, 117.9055321, 118.9039455, 119.9050794, 120.903812, 121.9051699, 122.9042132, 123.905935, 124.905253, 125.907253, 126.9069243, 127.909146, 128.909147, 129.911662, 130.9119888, 131.9145077, 132.9152732, 133.9205357, 134.9251851, 135.9307459, 136.93555, 137.94145, 138.94655, 139.95283 ]
- },
- {
- "symbol": "Te",
- "name": "Tellurium",
- "weight": 127.6,
- "isotopes": [ 104.9433, 105.9375, 106.935012, 107.9293805, 108.9273045, 109.9224581, 110.9210006, 111.9167279, 112.915891, 113.912089, 114.911902, 115.90846, 116.908646, 117.905854, 118.9064071, 119.9040593, 120.904944, 121.9030435, 122.9042698, 123.9028171, 124.9044299, 125.9033109, 126.9052257, 127.90446128, 128.90659646, 129.906222748, 130.908522213, 131.9085467, 132.9109688, 133.911394, 134.9165557, 135.9201006, 136.9255989, 137.9294722, 138.9353672, 139.939499, 140.9458, 141.95022, 142.95676 ]
- },
- {
- "symbol": "I",
- "name": "Iodine",
- "weight": 126.90447,
- "isotopes": [ 106.94678, 107.94348, 108.9380853, 109.935089, 110.9302692, 111.928005, 112.9236501, 113.92185, 114.918048, 115.91681, 116.913648, 117.913074, 118.910074, 119.910087, 120.9074051, 121.9075888, 122.9055885, 123.906209, 124.9046294, 125.9056233, 126.9044719, 127.9058086, 128.9049837, 129.9066702, 130.9061263, 131.9079935, 132.907797, 133.9097588, 134.9100488, 135.914604, 136.9180282, 137.9227264, 138.926506, 139.93173, 140.93569, 141.9412, 142.94565, 143.95139, 144.95605 ]
- },
- {
- "symbol": "Xe",
- "name": "Xenon",
- "weight": 131.293,
- "isotopes": [ 108.95043, 109.94426, 110.941607, 111.935559, 112.9332217, 113.92798, 114.926294, 115.921581, 116.920359, 117.916179, 118.915411, 119.911784, 120.911453, 121.908368, 122.908482, 123.905892, 124.9063944, 125.9042983, 126.9051829, 127.903531, 128.9047808611, 129.903509349, 130.90508406, 131.9041550856, 132.9059108, 133.90539466, 134.9072278, 135.907214484, 136.91155778, 137.9141463, 138.9187922, 139.9216458, 140.9267872, 141.9299731, 142.9353696, 143.9389451, 144.94472, 145.948518, 146.95426, 147.95813 ]
- },
- {
- "symbol": "Cs",
- "name": "Caesium",
- "weight": 132.90545196,
- "isotopes": [ 111.950309, 112.9444291, 113.941296, 114.93591, 115.93337, 116.928617, 117.92656, 118.922377, 119.920677, 120.917227, 121.916108, 122.912996, 123.9122578, 124.909728, 125.909446, 126.9074174, 127.9077487, 128.9060657, 129.9067093, 130.9054649, 131.9064339, 132.905451961, 133.906718503, 134.905977, 135.9073114, 136.90708923, 137.9110171, 138.9133638, 139.9172831, 140.9200455, 141.924296, 142.927349, 143.932076, 144.935527, 145.940344, 146.944156, 147.94923, 148.95302, 149.95833, 150.96258 ]
- },
- {
- "symbol": "Ba",
- "name": "Barium",
- "weight": 137.327,
- "isotopes": [ 113.95066, 114.94737, 115.94128, 116.93814, 117.93306, 118.93066, 119.92605, 120.92405, 121.919904, 122.918781, 123.915094, 124.914472, 125.91125, 126.911091, 127.908342, 128.908681, 129.9063207, 130.906941, 131.9050611, 132.9060074, 133.90450818, 134.90568838, 135.90457573, 136.90582714, 137.905247, 138.9088411, 139.9106057, 140.9144033, 141.9164324, 142.9206253, 143.9229549, 144.9275184, 145.930284, 146.935304, 147.938171, 148.94308, 149.94605, 150.95127, 151.95481, 152.96036 ]
- },
- {
- "symbol": "La",
- "name": "Lanthanum",
- "weight": 138.90547,
- "isotopes": [ 115.9563, 116.94999, 117.94673, 118.94099, 119.93807, 120.93315, 121.93071, 122.9263, 123.924574, 124.920816, 125.919513, 126.916375, 127.915592, 128.912694, 129.912369, 130.91007, 131.910119, 132.908218, 133.908514, 134.906984, 135.907635, 136.9064504, 137.9071149, 138.9063563, 139.9094806, 140.910966, 141.9140909, 142.9160795, 143.919646, 144.921808, 145.925875, 146.928418, 147.932679, 148.93535, 149.93947, 150.94232, 151.94682, 152.95036, 153.95517, 154.95901 ]
- },
- {
- "symbol": "Ce",
- "name": "Cerium",
- "weight": 140.116,
- "isotopes": [ 118.95271, 119.94654, 120.94335, 121.93787, 122.93528, 123.93031, 124.92844, 125.923971, 126.922727, 127.918911, 128.918102, 129.914736, 130.914429, 131.911464, 132.91152, 133.908928, 134.909161, 135.90712921, 136.90776236, 137.905991, 138.9066551, 139.9054431, 140.9082807, 141.9092504, 142.9123921, 143.9136529, 144.917265, 145.918802, 146.9226899, 147.924424, 148.928427, 149.930384, 150.934272, 151.9366, 152.94093, 153.9438, 154.94855, 155.95183, 156.95705 ]
- },
- {
- "symbol": "Pr",
- "name": "Praseodymium",
- "weight": 140.90766,
- "isotopes": [ 120.95532, 121.95175, 122.94596, 123.94294, 124.9377, 125.93524, 126.93071, 127.928791, 128.925095, 129.92359, 130.920235, 131.919255, 132.916331, 133.915697, 134.913112, 135.912677, 136.9106792, 137.910754, 138.9089408, 139.9090803, 140.9076576, 141.9100496, 142.9108228, 143.9133109, 144.9145182, 145.91768, 146.919008, 147.92213, 148.923736, 149.9266765, 150.928309, 151.931553, 152.933904, 153.93753, 154.940509, 155.94464, 156.94789, 157.95241, 158.95589 ]
- },
- {
- "symbol": "Nd",
- "name": "Neodymium",
- "weight": 144.242,
- "isotopes": [ 123.9522, 124.9489, 125.94311, 126.94038, 127.93525, 128.9331, 129.928506, 130.927248, 131.923321, 132.922348, 133.91879, 134.918181, 135.914976, 136.914562, 137.91195, 138.911954, 139.90955, 140.9096147, 141.907729, 142.90982, 143.910093, 144.9125793, 145.9131226, 146.9161061, 147.9168993, 148.9201548, 149.9209022, 150.9238403, 151.924692, 152.927718, 153.92948, 154.9331357, 155.93508, 156.939386, 157.94197, 158.94653, 159.9494, 160.95428 ]
- },
- {
- "symbol": "Pm",
- "name": "Promethium",
- "weight": 145,
- "isotopes": [ 125.95792, 126.95192, 127.9487, 128.94323, 129.94053, 130.93567, 131.93384, 132.929782, 133.928353, 134.924823, 135.923585, 136.92048, 137.919548, 138.9168, 139.91604, 140.913555, 141.91289, 142.9109383, 143.9125964, 144.9127559, 145.9147024, 146.915145, 147.9174819, 148.9183423, 149.920991, 150.9212175, 151.923506, 152.9241567, 153.926472, 154.928137, 155.9311175, 156.9331214, 157.936565, 158.939287, 159.9431, 160.94607, 161.95022, 162.95357 ]
- },
- {
- "symbol": "Sm",
- "name": "Samarium",
- "weight": 150.36,
- "isotopes": [ 127.95842, 128.95476, 129.949, 130.94618, 131.94087, 132.93856, 133.93411, 134.93252, 135.928276, 136.926971, 137.923244, 138.922297, 139.918995, 140.9184816, 141.9152044, 142.9146353, 143.9120065, 144.9134173, 145.913047, 146.9149044, 147.9148292, 148.9171921, 149.9172829, 150.9199398, 151.9197397, 152.9221047, 153.9222169, 154.9246477, 155.925536, 156.9284187, 157.929951, 158.9332172, 159.9353353, 160.9391602, 161.94146, 162.94555, 163.94836, 164.95297 ]
- },
- {
- "symbol": "Eu",
- "name": "Europium",
- "weight": 151.964,
- "isotopes": [ 129.96369, 130.95784, 131.95467, 132.94929, 133.9464, 134.94187, 135.93962, 136.93546, 137.933709, 138.929792, 139.928088, 140.924932, 141.923442, 142.920299, 143.91882, 144.9162726, 145.917211, 146.9167527, 147.918089, 148.9179378, 149.9197077, 150.9198578, 151.9217522, 152.921238, 153.922987, 154.9229011, 155.9247605, 156.9254334, 157.927799, 158.9291001, 159.931851, 160.933664, 161.936989, 162.939196, 163.94274, 164.94559, 165.94962, 166.95289 ]
- },
- {
- "symbol": "Gd",
- "name": "Gadolinium",
- "weight": 157.25,
- "isotopes": [ 132.96133, 133.95566, 134.95245, 135.9473, 136.94502, 137.94025, 138.93813, 139.933674, 140.932126, 141.928116, 142.92675, 143.922963, 144.921713, 145.9183188, 146.9191014, 147.9181215, 148.9193481, 149.9186644, 150.920356, 151.9197995, 152.921758, 153.9208741, 154.9226305, 155.9221312, 156.9239686, 157.9241123, 158.926397, 159.9270624, 160.9296775, 161.930993, 162.9341769, 163.93583, 164.93936, 165.94146, 166.94545, 167.94808, 168.9526 ]
- },
- {
- "symbol": "Tb",
- "name": "Terbium",
- "weight": 158.925354,
- "isotopes": [ 134.96476, 135.96129, 136.95602, 137.95312, 138.94833, 139.94581, 140.94145, 141.93928, 142.935137, 143.933045, 144.92882, 145.927253, 146.9240548, 147.924282, 148.9232535, 149.9236649, 150.9231096, 151.924083, 152.9234424, 153.924685, 154.923511, 155.9247552, 156.924033, 157.9254209, 158.9253547, 159.9271756, 160.9275778, 161.929495, 162.9306547, 163.93336, 164.93498, 165.93786, 166.93996, 167.9434, 168.94597, 169.94984, 170.95273 ]
- },
- {
- "symbol": "Dy",
- "name": "Dysprosium",
- "weight": 162.5,
- "isotopes": [ 137.9625, 138.95959, 139.95402, 140.95128, 141.94619, 142.943994, 143.9392695, 144.937474, 145.9328445, 146.9310827, 147.927157, 148.927322, 149.9255933, 150.9261916, 151.9247253, 152.9257724, 153.9244293, 154.925759, 155.9242847, 156.9254707, 157.9244159, 158.925747, 159.9252046, 160.9269405, 161.9268056, 162.9287383, 163.9291819, 164.9317105, 165.9328139, 166.935661, 167.93713, 168.94031, 169.94239, 170.94612, 171.94846, 172.95283 ]
- },
- {
- "symbol": "Ho",
- "name": "Holmium",
- "weight": 164.930328,
- "isotopes": [ 139.96859, 140.96311, 141.96001, 142.95486, 143.9521097, 144.9472674, 145.9449935, 146.9401423, 147.937744, 148.933803, 149.933498, 150.9316983, 151.931724, 152.9302064, 153.9306068, 154.929104, 155.929706, 156.928254, 157.928946, 158.9277197, 159.928737, 160.9278615, 161.9291023, 162.928741, 163.9302403, 164.9303288, 165.9322909, 166.9331385, 167.935522, 168.936878, 169.939625, 170.94147, 171.94473, 172.94702, 173.95095, 174.95362 ]
- },
- {
- "symbol": "Er",
- "name": "Erbium",
- "weight": 167.259,
- "isotopes": [ 141.9701, 142.96662, 143.9607, 144.95805, 145.9524184, 146.949964, 147.944735, 148.942306, 149.937916, 150.937449, 151.935057, 152.93508, 153.9327908, 154.9332159, 155.931067, 156.931949, 157.929893, 158.9306918, 159.929077, 160.9300046, 161.9287884, 162.9300408, 163.9292088, 164.9307345, 165.9302995, 166.9320546, 167.9323767, 168.9345968, 169.9354702, 170.9380357, 171.9393619, 172.9424, 173.94423, 174.94777, 175.94994, 176.95399 ]
- },
- {
- "symbol": "Tm",
- "name": "Thulium",
- "weight": 168.934218,
- "isotopes": [ 143.97628, 144.97039, 145.96684, 146.9613799, 147.958384, 148.95289, 149.95009, 150.945488, 151.944422, 152.94204, 153.94157, 154.93921, 155.938992, 156.936944, 157.93698, 158.934975, 159.935263, 160.933549, 161.934002, 162.9326592, 163.933544, 164.9324431, 165.933561, 166.9328562, 167.9341774, 168.9342179, 169.935806, 170.9364339, 171.9384055, 172.9396084, 173.942173, 174.943841, 175.947, 176.94904, 177.95264, 178.95534 ]
- },
- {
- "symbol": "Yb",
- "name": "Ytterbium",
- "weight": 173.045,
- "isotopes": [ 147.96758, 148.96436, 149.95852, 150.9554, 151.95027, 152.94932, 153.946396, 154.945783, 155.942825, 156.942645, 157.9398705, 158.940055, 159.937557, 160.937907, 161.935774, 162.93634, 163.934495, 164.93527, 165.9338747, 166.934953, 167.9338896, 168.9351825, 169.9347664, 170.9363302, 171.9363859, 172.9382151, 173.9388664, 174.9412808, 175.9425764, 176.9452656, 177.946651, 178.95004, 179.95212, 180.95589 ]
- },
- {
- "symbol": "Lu",
- "name": "Lutetium",
- "weight": 174.9668,
- "isotopes": [ 149.97355, 150.96768, 151.96412, 152.95875, 153.95736, 154.954321, 155.953033, 156.950127, 157.949316, 158.946636, 159.946033, 160.943572, 161.943283, 162.941179, 163.941339, 164.939407, 165.939859, 166.93827, 167.938736, 168.9376441, 169.938478, 170.937917, 171.9390891, 172.938934, 173.9403409, 174.9407752, 175.9426897, 176.9437615, 177.945958, 178.9473309, 179.949888, 180.95191, 181.95504, 182.957363, 183.96091, 184.96362 ]
- },
- {
- "symbol": "Hf",
- "name": "Hafnium",
- "weight": 178.49,
- "isotopes": [ 152.97069, 153.96486, 154.96311, 155.95935, 156.95824, 157.954801, 158.953996, 159.950691, 160.950278, 161.9472148, 162.947113, 163.944371, 164.944567, 165.94218, 166.9426, 167.940568, 168.941259, 169.939609, 170.940492, 171.93945, 172.940513, 173.9400461, 174.9415092, 175.9414076, 176.9432277, 177.9437058, 178.9458232, 179.946557, 180.9491083, 181.9505612, 182.95353, 183.955446, 184.958862, 185.960897, 186.96477, 187.96685, 188.97084 ]
- },
- {
- "symbol": "Ta",
- "name": "Tantalum",
- "weight": 180.94788,
- "isotopes": [ 154.97424, 155.97203, 156.96818, 157.96654, 158.963023, 159.961488, 160.958452, 161.957294, 162.954337, 163.953534, 164.950781, 165.950512, 166.948093, 167.948047, 168.946011, 169.946175, 170.944476, 171.944895, 172.94375, 173.944454, 174.943737, 175.944857, 176.9444795, 177.945678, 178.9459366, 179.9474648, 180.9479958, 181.9501519, 182.9513726, 183.954008, 184.955559, 185.958551, 186.960386, 187.963916, 188.96583, 189.96939, 190.97156, 191.97514 ]
- },
- {
- "symbol": "W",
- "name": "Tungsten",
- "weight": 183.84,
- "isotopes": [ 156.97884, 157.97456, 158.97264, 159.96846, 160.9672, 161.963499, 162.962524, 163.958961, 164.958281, 165.955031, 166.954805, 167.951806, 168.951779, 169.949232, 170.949451, 171.947292, 172.947689, 173.946079, 174.946717, 175.945634, 176.946643, 177.945883, 178.947077, 179.9467108, 180.9481978, 181.94820394, 182.95022275, 183.95093092, 184.95341897, 185.9543628, 186.9571588, 187.9584862, 188.961763, 189.963091, 190.966531, 191.96817, 192.97178, 193.97367 ]
- },
- {
- "symbol": "Re",
- "name": "Rhenium",
- "weight": 186.207,
- "isotopes": [ 158.98418, 159.98182, 160.97757, 161.97584, 162.97208, 163.970453, 164.967103, 165.965761, 166.962595, 167.961573, 168.958766, 169.95822, 170.955716, 171.95542, 172.953243, 173.953115, 174.951381, 175.951623, 176.950328, 177.950989, 178.949989, 179.950792, 180.950058, 181.95121, 182.9508196, 183.9525228, 184.9529545, 185.9549856, 186.9557501, 187.9581115, 188.959226, 189.961744, 190.963122, 191.966088, 192.967541, 193.97076, 194.97254, 195.9758, 196.97799, 197.9816 ]
- },
- {
- "symbol": "Os",
- "name": "Osmium",
- "weight": 190.23,
- "isotopes": [ 160.98903, 161.98443, 162.98241, 163.97802, 164.9766, 165.972692, 166.971549, 167.967808, 168.967018, 169.963578, 170.963174, 171.960017, 172.959808, 173.957064, 174.956945, 175.954806, 176.954966, 177.953254, 178.953817, 179.952375, 180.953247, 181.95211, 182.953125, 183.9524885, 184.9540417, 185.953835, 186.9557474, 187.9558352, 188.9581442, 189.9584437, 190.9609264, 191.961477, 192.9641479, 193.9651772, 194.968318, 195.969641, 196.97283, 197.97441, 198.97801, 199.97984, 200.98364, 201.98595 ]
- },
- {
- "symbol": "Ir",
- "name": "Iridium",
- "weight": 192.217,
- "isotopes": [ 163.99191, 164.9875, 165.98566, 166.981666, 167.979907, 168.976298, 169.974922, 170.97164, 171.970607, 172.967506, 173.966861, 174.96415, 175.96365, 176.961301, 177.961082, 178.95912, 179.959229, 180.957625, 181.958076, 182.95684, 183.957476, 184.956698, 185.957944, 186.957542, 187.958828, 188.958715, 189.9605412, 190.9605893, 191.9626002, 192.9629216, 193.9650735, 194.9659747, 195.968397, 196.969655, 197.97228, 198.973805, 199.9768, 200.97864, 201.98199, 202.98423, 203.9896 ]
- },
- {
- "symbol": "Pt",
- "name": "Platinum",
- "weight": 195.084,
- "isotopes": [ 165.99486, 166.99269, 167.98813, 168.98657, 169.982496, 170.981245, 171.977351, 172.976443, 173.97282, 174.97241, 175.968938, 176.96847, 177.96565, 178.965359, 179.963032, 180.963098, 181.961172, 182.961597, 183.959915, 184.960614, 185.959351, 186.960617, 187.9593889, 188.960831, 189.9599297, 190.9616729, 191.9610387, 192.9629824, 193.9626809, 194.9647917, 195.96495209, 196.96734069, 197.9678949, 198.9705952, 199.971443, 200.974513, 201.975639, 202.97893, 203.98076, 204.98608, 205.98966 ]
- },
- {
- "symbol": "Au",
- "name": "Gold",
- "weight": 196.96657,
- "isotopes": [ 168.99808, 169.99597, 170.991876, 171.989942, 172.986241, 173.984717, 174.981304, 175.98025, 176.97687, 177.976032, 178.973174, 179.972523, 180.970079, 181.969618, 182.967591, 183.967452, 184.96579, 185.965953, 186.964543, 187.965349, 188.963948, 189.964698, 190.963702, 191.964814, 192.9641373, 193.9654178, 194.9650352, 195.9665699, 196.96656879, 197.96824242, 198.96876528, 199.970756, 200.9716575, 201.973856, 202.9751544, 203.97783, 204.97985, 205.98474, 206.9884, 207.99345, 208.99735, 210.0025 ]
- },
- {
- "symbol": "Hg",
- "name": "Mercury",
- "weight": 200.592,
- "isotopes": [ 171.00353, 171.99881, 172.99709, 173.992865, 174.991441, 175.987361, 176.986277, 177.982484, 178.981831, 179.97826, 180.977819, 181.974689, 182.9744448, 183.971714, 184.971899, 185.969362, 186.969814, 187.967567, 188.968195, 189.966323, 190.967157, 191.965635, 192.966653, 193.9654491, 194.966721, 195.9658326, 196.9672128, 197.9667686, 198.96828064, 199.96832659, 200.97030284, 201.9706434, 202.9728728, 203.97349398, 204.9760734, 205.977514, 206.9823, 207.985759, 208.99072, 209.99424, 210.99933, 212.00296, 213.00823, 214.012, 215.0174, 216.02132 ]
- },
- {
- "symbol": "Tl",
- "name": "Thallium",
- "weight": 204.38,
- "isotopes": [ 176.000624, 176.996431, 177.99485, 178.991111, 179.990057, 180.98626, 181.985713, 182.982193, 183.981886, 184.978789, 185.978651, 186.9759063, 187.976021, 188.973588, 189.973828, 190.9717842, 191.972225, 192.970502, 193.971081, 194.969774, 195.970481, 196.969576, 197.970483, 198.969877, 199.9709633, 200.970822, 201.972102, 202.9723446, 203.9738639, 204.9744278, 205.9761106, 206.9774197, 207.982019, 208.9853594, 209.990074, 210.993475, 211.99834, 213.001915, 214.00694, 215.01064, 216.0158, 217.01966, 218.02479 ]
- },
- {
- "symbol": "Pb",
- "name": "Lead",
- "weight": 207.2,
- "isotopes": [ 178.003831, 179.002201, 179.997928, 180.996653, 181.992672, 182.991872, 183.988136, 184.98761, 185.984238, 186.9839109, 187.980875, 188.980807, 189.978082, 190.978276, 191.975775, 192.976173, 193.974012, 194.974543, 195.972774, 196.9734312, 197.972034, 198.972913, 199.971819, 200.972883, 201.972152, 202.9733911, 203.973044, 204.9744822, 205.9744657, 206.9758973, 207.9766525, 208.9810905, 209.9841889, 210.9887371, 211.9918977, 212.9965629, 213.9998059, 215.00474, 216.00803, 217.01314, 218.01659, 219.02177, 220.02541 ]
- },
- {
- "symbol": "Bi",
- "name": "Bismuth",
- "weight": 208.9804,
- "isotopes": [ 184.001275, 184.9976, 185.996644, 186.993147, 187.992287, 188.989195, 189.988622, 190.9857866, 191.985469, 192.98296, 193.982785, 194.9806488, 195.980667, 196.9788651, 197.979206, 198.977673, 199.978131, 200.97701, 201.977734, 202.976893, 203.9778361, 204.9773867, 205.9784993, 206.978471, 207.9797425, 208.9803991, 209.9841207, 210.9872697, 211.991286, 212.9943851, 213.998712, 215.00177, 216.006306, 217.009372, 218.014188, 219.01748, 220.02235, 221.02587, 222.03078, 223.0345, 224.03947 ]
- },
- {
- "symbol": "Po",
- "name": "Polonium",
- "weight": 209,
- "isotopes": [ 186.004393, 187.003041, 187.999416, 188.998473, 189.995101, 190.9945585, 191.991336, 192.991026, 193.988186, 194.988126, 195.985526, 196.98566, 197.983389, 198.983667, 199.981799, 200.9822598, 201.980758, 202.9814161, 203.98031, 204.981203, 205.980474, 206.9815938, 207.9812461, 208.9824308, 209.9828741, 210.9866536, 211.9888684, 212.9928576, 213.9952017, 214.9994201, 216.0019152, 217.0063182, 218.0089735, 219.013614, 220.016386, 221.021228, 222.02414, 223.02907, 224.03211, 225.03707, 226.04031, 227.04539 ]
- },
- {
- "symbol": "At",
- "name": "Astatine",
- "weight": 210,
- "isotopes": [ 191.004148, 192.003152, 192.999927, 193.999236, 194.9962685, 195.9958, 196.993189, 197.992784, 198.9905277, 199.990351, 200.9884171, 201.98863, 202.986943, 203.987251, 204.986076, 205.986657, 206.9858, 207.9866133, 208.9861702, 209.9871479, 210.9874966, 211.9907377, 212.992937, 213.9963721, 214.9986528, 216.0024236, 217.0047192, 218.008695, 219.0111618, 220.015433, 221.018017, 222.022494, 223.025151, 224.029749, 225.03263, 226.03716, 227.04024, 228.04475, 229.04812 ]
- },
- {
- "symbol": "Rn",
- "name": "Radon",
- "weight": 222,
- "isotopes": [ 193.009708, 194.006144, 195.005422, 196.002116, 197.001585, 197.998679, 198.99839, 199.99569, 200.995628, 201.993264, 202.993388, 203.99143, 204.991719, 205.990214, 206.9907303, 207.989635, 208.990415, 209.9896891, 210.9906011, 211.9907039, 212.9938831, 213.995363, 214.9987459, 216.0002719, 217.003928, 218.0056016, 219.0094804, 220.0113941, 221.0155371, 222.0175782, 223.0218893, 224.024096, 225.028486, 226.030861, 227.035304, 228.037835, 229.042257, 230.04514, 231.04987 ]
- },
- {
- "symbol": "Fr",
- "name": "Francium",
- "weight": 223,
- "isotopes": [ 199.007259, 200.006586, 201.003867, 202.00332, 203.0009407, 204.000652, 204.9985939, 205.998666, 206.996946, 207.997138, 208.995955, 209.996422, 210.995556, 211.9962257, 212.996186, 213.9989713, 215.0003418, 216.0031899, 217.0046323, 218.0075787, 219.0092524, 220.0123277, 221.0142552, 222.017552, 223.019736, 224.023398, 225.025573, 226.029566, 227.031869, 228.035823, 229.038298, 230.042416, 231.045158, 232.04937, 233.05264 ]
- },
- {
- "symbol": "Ra",
- "name": "Radium",
- "weight": 226,
- "isotopes": [ 201.01271, 202.00976, 203.009304, 204.006492, 205.006268, 206.003828, 207.003799, 208.001841, 209.00199, 210.000494, 211.0008932, 211.999787, 213.000384, 214.0000997, 215.0027204, 216.0035334, 217.0063207, 218.007141, 219.0100855, 220.0110259, 221.0139177, 222.0153748, 223.0185023, 224.020212, 225.0236119, 226.0254103, 227.0291783, 228.0310707, 229.034942, 230.037055, 231.041027, 232.0434753, 233.047582, 234.050342, 235.05497 ]
- },
- {
- "symbol": "Ac",
- "name": "Actinium",
- "weight": 227,
- "isotopes": [ 206.014452, 207.011966, 208.01155, 209.009495, 210.009436, 211.007732, 212.007813, 213.006609, 214.006918, 215.006475, 216.008743, 217.009344, 218.011642, 219.012421, 220.0147549, 221.015592, 222.0178442, 223.0191377, 224.0217232, 225.02323, 226.0260984, 227.0277523, 228.0310215, 229.032956, 230.036327, 231.038393, 232.042034, 233.044346, 234.048139, 235.05084, 236.054988, 237.05827 ]
- },
- {
- "symbol": "Th",
- "name": "Thorium",
- "weight": 232.0377,
- "isotopes": [ 208.0179, 209.017753, 210.015094, 211.014929, 212.012988, 213.013009, 214.0115, 215.0117248, 216.011056, 217.013117, 218.013276, 219.015537, 220.015748, 221.018184, 222.018469, 223.0208119, 224.021464, 225.0239514, 226.0249034, 227.0277042, 228.0287413, 229.0317627, 230.0331341, 231.0363046, 232.0380558, 233.0415823, 234.0436014, 235.047255, 236.049657, 237.053629, 238.0565, 239.06077 ]
- },
- {
- "symbol": "Pa",
- "name": "Protactinium",
- "weight": 231.03588,
- "isotopes": [ 212.023203, 213.021109, 214.020918, 215.019183, 216.019109, 217.018325, 218.020059, 219.019904, 220.021705, 221.021875, 222.023784, 223.023963, 224.0256176, 225.026131, 226.027948, 227.0288054, 228.0310517, 229.0320972, 230.034541, 231.0358842, 232.0385917, 233.0402472, 234.0433072, 235.045399, 236.048668, 237.051023, 238.054637, 239.05726, 240.06098, 241.06408 ]
- },
- {
- "symbol": "U",
- "name": "Uranium",
- "weight": 238.02891,
- "isotopes": [ 217.02466, 218.023523, 219.024999, 220.02462, 221.02628, 222.026, 223.027739, 224.027605, 225.029391, 226.029339, 227.031157, 228.031371, 229.0335063, 230.0339401, 231.0362939, 232.0371563, 233.0396355, 234.0409523, 235.0439301, 236.0455682, 237.0487304, 238.0507884, 239.0542935, 240.0565934, 241.06033, 242.06293, 243.06699 ]
- },
- {
- "symbol": "Np",
- "name": "Neptunium",
- "weight": 237,
- "isotopes": [ 219.03143, 220.03254, 221.03204, 222.0333, 223.03285, 224.03422, 225.033911, 226.035188, 227.034957, 228.036067, 229.036264, 230.037828, 231.038245, 232.04011, 233.040741, 234.0428953, 235.0440635, 236.04657, 237.0481736, 238.0509466, 239.0529392, 240.056165, 241.058253, 242.06164, 243.06428, 244.06785, 245.0708 ]
- },
- {
- "symbol": "Pu",
- "name": "Plutonium",
- "weight": 244,
- "isotopes": [ 228.038732, 229.040144, 230.03965, 231.041102, 232.041185, 233.042998, 234.0433174, 235.045286, 236.0460581, 237.0484098, 238.0495601, 239.0521636, 240.0538138, 241.0568517, 242.0587428, 243.0620036, 244.0642053, 245.067826, 246.070205, 247.07419 ]
- },
- {
- "symbol": "Am",
- "name": "Americium",
- "weight": 243,
- "isotopes": [ 230.04609, 231.04556, 232.04645, 233.04644, 234.04773, 235.047908, 236.04943, 237.049996, 238.051985, 239.0530247, 240.0553, 241.0568293, 242.0595494, 243.0613813, 244.0642851, 245.0664548, 246.069775, 247.07209, 248.07575, 249.07848 ]
- },
- {
- "symbol": "Cm",
- "name": "Curium",
- "weight": 247,
- "isotopes": [ 232.04982, 233.05077, 234.05016, 235.05154, 236.051374, 237.052869, 238.053081, 239.05491, 240.0555297, 241.0576532, 242.058836, 243.0613893, 244.0627528, 245.0654915, 246.0672238, 247.0703541, 248.0723499, 249.0759548, 250.078358, 251.082286, 252.08487 ]
- },
- {
- "symbol": "Bk",
- "name": "Berkelium",
- "weight": 247,
- "isotopes": [ 234.05727, 235.05658, 236.05748, 237.0571, 238.0582, 239.05824, 240.05976, 241.06016, 242.06198, 243.0630078, 244.065181, 245.0663618, 246.068673, 247.0703073, 248.073088, 249.0749877, 250.0783167, 251.080762, 252.08431, 253.08688, 254.0906 ]
- },
- {
- "symbol": "Cf",
- "name": "Californium",
- "weight": 251,
- "isotopes": [ 237.062198, 238.06149, 239.06253, 240.062256, 241.06369, 242.063754, 243.06548, 244.0660008, 245.0680487, 246.0688055, 247.070965, 248.0721851, 249.0748539, 250.0764062, 251.0795886, 252.0816272, 253.0851345, 254.087324, 255.09105, 256.09344 ]
- },
- {
- "symbol": "Es",
- "name": "Einsteinium",
- "weight": 252,
- "isotopes": [ 239.06823, 240.06892, 241.06856, 242.06957, 243.06951, 244.07088, 245.07125, 246.0729, 247.073622, 248.075471, 249.076411, 250.07861, 251.0799936, 252.08298, 253.0848257, 254.0880222, 255.090275, 256.0936, 257.09598, 258.09952 ]
- },
- {
- "symbol": "Fm",
- "name": "Fermium",
- "weight": 257,
- "isotopes": [ 241.07421, 242.07343, 243.07446, 244.07404, 245.07535, 246.07535, 247.07694, 248.0771865, 249.0789275, 250.079521, 251.08154, 252.0824671, 253.0851846, 254.0868544, 255.089964, 256.0917745, 257.0951061, 258.09708, 259.1006, 260.10281 ]
- },
- {
- "symbol": "Md",
- "name": "Mendelevium",
- "weight": 258,
- "isotopes": [ 245.08081, 246.08171, 247.08152, 248.08282, 249.08291, 250.08441, 251.084774, 252.08643, 253.087144, 254.08959, 255.0910841, 256.09389, 257.0955424, 258.0984315, 259.10051, 260.10365, 261.10583, 262.1091 ]
- },
- {
- "symbol": "No",
- "name": "Nobelium",
- "weight": 259,
- "isotopes": [ 248.08655, 249.0878, 250.08756, 251.08894, 252.088967, 253.0905641, 254.090956, 255.093191, 256.0942829, 257.0968878, 258.09821, 259.10103, 260.10264, 261.1057, 262.10746, 263.11071, 264.11273 ]
- },
- {
- "symbol": "Lr",
- "name": "Lawrencium",
- "weight": 266,
- "isotopes": [ 251.09418, 252.09526, 253.09509, 254.09648, 255.096562, 256.098494, 257.099418, 258.10176, 259.102902, 260.1055, 261.10688, 262.10961, 263.11136, 264.1142, 265.11619, 266.11983 ]
- },
- {
- "symbol": "Rf",
- "name": "Rutherfordium",
- "weight": 267,
- "isotopes": [ 253.10044, 254.10005, 255.10127, 256.101152, 257.102918, 258.103428, 259.105596, 260.10644, 261.108773, 262.10992, 263.11249, 264.11388, 265.11668, 266.11817, 267.12179, 268.12397 ]
- },
- {
- "symbol": "Db",
- "name": "Dubnium",
- "weight": 268,
- "isotopes": [ 255.10707, 256.10789, 257.10758, 258.10928, 259.109492, 260.1113, 261.11192, 262.11407, 263.11499, 264.11741, 265.11861, 266.12103, 267.12247, 268.12567, 269.12791, 270.13136 ]
- },
- {
- "symbol": "Sg",
- "name": "Seaborgium",
- "weight": 269,
- "isotopes": [ 258.11298, 259.1144, 260.114384, 261.115949, 262.116337, 263.11829, 264.11893, 265.12109, 266.12198, 267.12436, 268.12539, 269.12863, 270.13043, 271.13393, 272.13589, 273.13958 ]
- },
- {
- "symbol": "Bh",
- "name": "Bohrium",
- "weight": 270,
- "isotopes": [ 260.12166, 261.12145, 262.12297, 263.12292, 264.12459, 265.12491, 266.12679, 267.1275, 268.12969, 269.13042, 270.13336, 271.13526, 272.13826, 273.14024, 274.14355, 275.14567 ]
- },
- {
- "symbol": "Hs",
- "name": "Hassium",
- "weight": 270,
- "isotopes": [ 263.12852, 264.128357, 265.129793, 266.130046, 267.13167, 268.13186, 269.13375, 270.13429, 271.13717, 272.1385, 273.14168, 274.1433, 275.14667, 276.14846, 277.1519 ]
- },
- {
- "symbol": "Mt",
- "name": "Meitnerium",
- "weight": 278,
- "isotopes": [ 265.136, 266.13737, 267.13719, 268.13865, 269.13882, 270.14033, 271.14074, 272.14341, 273.1444, 274.14724, 275.14882, 276.15159, 277.15327, 278.15631, 279.15808 ]
- },
- {
- "symbol": "Ds",
- "name": "Darmstadtium",
- "weight": 281,
- "isotopes": [ 267.14377, 268.14348, 269.144752, 270.144584, 271.14595, 272.14602, 273.14856, 274.14941, 275.15203, 276.15303, 277.15591, 278.15704, 279.1601, 280.16131, 281.16451 ]
- },
- {
- "symbol": "Rg",
- "name": "Roentgenium",
- "weight": 282,
- "isotopes": [ 272.15327, 273.15313, 274.15525, 275.15594, 276.15833, 277.15907, 278.16149, 279.16272, 280.16514, 281.16636, 282.16912, 283.17054 ]
- },
- {
- "symbol": "Cn",
- "name": "Copernicium",
- "weight": 285,
- "isotopes": [ 276.16141, 277.16364, 278.16416, 279.16654, 280.16715, 281.16975, 282.1705, 283.17327, 284.17416, 285.17712 ]
- },
- {
- "symbol": "Nh",
- "name": "Nihonium",
- "weight": 286,
- "isotopes": [ 278.17058, 279.17095, 280.17293, 281.17348, 282.17567, 283.17657, 284.17873, 285.17973, 286.18221, 287.18339 ]
- },
- {
- "symbol": "Fl",
- "name": "Flerovium",
- "weight": 289,
- "isotopes": [ 285.18364, 286.18423, 287.18678, 288.18757, 289.19042 ]
- },
- {
- "symbol": "Mc",
- "name": "Moscovium",
- "weight": 290,
- "isotopes": [ 287.1907, 288.19274, 289.19363, 290.19598, 291.19707 ]
- },
- {
- "symbol": "Lv",
- "name": "Livermorium",
- "weight": 293,
- "isotopes": [ 289.19816, 290.19864, 291.20108, 292.20174, 293.20449 ]
- },
- {
- "symbol": "Ts",
- "name": "Tennessine",
- "weight": 294,
- "isotopes": [ 291.20553, 292.20746, 293.20824, 294.21046 ]
- },
- {
- "symbol": "Og",
- "name": "Oganesson",
- "weight": 294,
- "isotopes": [ 293.21356, 294.21392, 295.21624 ]
- }
-]
\ No newline at end of file
diff --git a/Chemistry/README.md b/Chemistry/README.md
deleted file mode 100644
index d0896291..00000000
--- a/Chemistry/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# [Trivial.Chemistry](https://trivial.kingcean.net/chemistry)
-
-This library includes the basic chemistry models.
-
-## Import
-
-Add following namespace to your code file to use.
-
-```csharp
-using Trivial.Chemistry;
-```
-
-## Element
-
-Get element from periodic table by its symbol or atomic numbers.
-
-```csharp
-var oxygen = ChemicalElement.Get(8);
-var gold = ChemicalElement.Get("Au");
-var carbon = ChemicalElement.C;
-```
-
-Or list a set of element.
-
-```csharp
-var some = ChemicalElement.Where(ele => ele.AtomicNumber < 20);
-```
-
-## Isotope
-
-Create an isotope from an element.
-
-```csharp
-var diplogen = ChemicalElement.H.Isotope(2);
-```
-
-Or list all for a specific element.
-
-```csharp
-var allCarbonIsotopes = ChemicalElement.C.Isotopes();
-```
-
-## Molecular formula
-
-Parse a molecular formula.
-
-```csharp
-var carbonicAcid = MolecularFormula.Parse("H2CO3");
-```
-
-Or create a molecular formula by merging elements and other molecular formulas.
-
-```csharp
-var sulfuricAcid = ChemicalElement.H * 2 + ChemicalElement.S + ChemicalElement.O * 4;
-var ethanol = MolecularFormula.Parse("CH3") + MolecularFormula.Parse("CH2") + MolecularFormula.Parse("OH");
-var iron = ChemicalElement.Fe;
-```
-
-Test conservation of mass.
-
-```csharp
-// 2 Na + 2 H₂O = 2 NaOH + H₂
-var mass = MolecularFormula.ConservationOfMass(
- new List
- {
- { ChemicalElement.Na, 2 },
- { ChemicalElement.H * 2 + ChemicalElement.O, 2 }
- },
- new List
- {
- { ChemicalElement.Na + ChemicalElement.H + ChemicalElement.O, 2 },
- ChemicalElement.H * 2
- }
-);
-Console.WriteLine(mass); // -> True
-```
diff --git a/Console/CommandLine/Default.cs b/Console/CommandLine/Default.cs
deleted file mode 100644
index 49f3ace1..00000000
--- a/Console/CommandLine/Default.cs
+++ /dev/null
@@ -1,1724 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Drawing;
-using System.IO;
-using System.Linq;
-using System.Security;
-using System.Text;
-using System.Threading.Tasks;
-
-using Trivial.Collection;
-using Trivial.Security;
-using Trivial.Tasks;
-using Trivial.Text;
-
-namespace Trivial.CommandLine;
-
-///
-/// The command line interface.
-///
-public static class DefaultConsole
-{
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The text content.
- public static void Write(ConsoleText content)
- => StyleConsole.Default.Write(content);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The text content 1.
- /// The text content 2.
- /// The additional text content collection.
- public static void Write(ConsoleText content1, ConsoleText content2, params ConsoleText[] additionalContext)
- => StyleConsole.Default.Write(content1, content2, additionalContext);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The text content collection.
- public static void Write(IEnumerable content)
- => StyleConsole.Default.Write(content);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(string s, params object[] args)
- => StyleConsole.Default.Write(s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(ConsoleTextStyle style, string s, params object[] args)
- => StyleConsole.Default.Write(style, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(ConsoleColor foreground, string s, params object[] args)
- => StyleConsole.Default.Write(foreground, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, string s, params object[] args)
- => StyleConsole.Default.Write(foreground, background, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(Color foreground, string s, params object[] args)
- => StyleConsole.Default.Write(foreground, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(Color foreground, Color background, string s, params object[] args)
- => StyleConsole.Default.Write(foreground, background, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The style.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void Write(IConsoleTextPrettier style, string s, params object[] args)
- => StyleConsole.Default.Write(style, s, args);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A composite format string to output.
- public static void Write(StringBuilder s)
- => StyleConsole.Default.Write(s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A composite format string to output.
- public static void Write(ConsoleTextStyle style, StringBuilder s)
- => StyleConsole.Default.Write(style, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void Write(ConsoleColor foreground, StringBuilder s)
- => StyleConsole.Default.Write(foreground, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, StringBuilder s)
- => StyleConsole.Default.Write(foreground, background, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void Write(Color foreground, StringBuilder s)
- => StyleConsole.Default.Write(foreground, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void Write(Color foreground, Color background, StringBuilder s)
- => StyleConsole.Default.Write(foreground, background, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The style.
- /// A composite format string to output.
- public static void Write(IConsoleTextPrettier style, StringBuilder s)
- => StyleConsole.Default.Write(style, s);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A composite format string to output.
- public static void Write(SecureString s)
- => StyleConsole.Default.Write(s.ToUnsecureString());
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A composite format string to output.
- public static void Write(ConsoleTextStyle style, SecureString s)
- => StyleConsole.Default.Write(style, s.ToUnsecureString());
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void Write(ConsoleColor foreground, SecureString s)
- => StyleConsole.Default.Write(foreground, s.ToUnsecureString());
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, SecureString s)
- => StyleConsole.Default.Write(foreground, background, s.ToUnsecureString());
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(int number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(int number, string format)
- => StyleConsole.Default.Write(number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, int number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleTextStyle style, int number, string format)
- => StyleConsole.Default.Write(style, number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, int number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleColor foreground, int number, string format)
- => StyleConsole.Default.Write(foreground, number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, int number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, int number, string format)
- => StyleConsole.Default.Write(foreground, background, number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(long number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, long number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, long number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, long number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(ulong number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, ulong number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, ulong number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, ulong number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(float number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, float number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, float number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, float number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(decimal number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, decimal number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, decimal number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, decimal number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- public static void Write(double number)
- => StyleConsole.Default.Write(number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(double number, string format)
- => StyleConsole.Default.Write(number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void Write(ConsoleTextStyle style, double number)
- => StyleConsole.Default.Write(style, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleTextStyle style, double number, string format)
- => StyleConsole.Default.Write(style, number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void Write(ConsoleColor foreground, double number)
- => StyleConsole.Default.Write(foreground, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleColor foreground, double number, string format)
- => StyleConsole.Default.Write(foreground, number, format);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, double number)
- => StyleConsole.Default.Write(foreground, background, number);
-
- ///
- /// Writes the specified number to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, double number, string format)
- => StyleConsole.Default.Write(foreground, background, number, format);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void Write(char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.Write(value, start, count);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void Write(ConsoleTextStyle style, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.Write(style, value, start, count);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void Write(ConsoleColor foreground, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.Write(foreground, value, start, count);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.Write(foreground, background, value, start, count);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void Write(IConsoleTextPrettier style, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.Write(style, value, start, count);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The value to write.
- /// The number of times to append value.
- public static void Write(char value, int repeatCount = 1)
- => StyleConsole.Default.Write(value, repeatCount);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The number of times to append value.
- public static void Write(ConsoleTextStyle style, char value, int repeatCount = 1)
- => StyleConsole.Default.Write(style, value, repeatCount);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The value to write.
- /// The number of times to append value.
- public static void Write(ConsoleColor foreground, char value, int repeatCount = 1)
- => StyleConsole.Default.Write(foreground, value, repeatCount);
-
- ///
- /// Writes the specified string value to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The style.
- /// The value to write.
- /// The number of times to append value.
- public static void Write(IConsoleTextPrettier style, char value, int repeatCount = 1)
- => StyleConsole.Default.Write(style, value, repeatCount);
-
- ///
- /// Writes the specified data to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// A representation model.
- public static void Write(IConsoleTextCreator model)
- => StyleConsole.Default.Write(model);
-
- ///
- /// Writes the specified data to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The type of data model.
- /// The style.
- /// A data model.
- public static void Write(IConsoleTextCreator style, T data)
- => StyleConsole.Default.Write(style, data);
-
- ///
- /// Writes the specified data to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The type of data model.
- /// The additional options.
- /// The style.
- /// A data model.
- /// The additional options.
- public static void Write(IConsoleTextCreator style, TData data, TOptions options)
- => StyleConsole.Default.Write(style, data, options);
-
- ///
- /// Writes the specified characters to the standard output stream.
- /// Note it may not flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// The value to write.
- /// The number of times to append value.
- public static void Write(ConsoleColor? foreground, ConsoleColor? background, char value, int repeatCount = 1)
- => StyleConsole.Default.Write(foreground, background, value, repeatCount);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The text content.
- public static void WriteLine(ConsoleText content = null)
- => StyleConsole.Default.WriteLine(content);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The text content 1.
- /// The text content 2.
- /// The additional text content collection.
- public static void WriteLine(ConsoleText content1, ConsoleText content2, params ConsoleText[] additionalContext)
- => StyleConsole.Default.WriteLine(content1, content2, additionalContext);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The text content collection.
- public static void WriteLine(IEnumerable content)
- => StyleConsole.Default.WriteLine(content);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(string s, params object[] args)
- => StyleConsole.Default.WriteLine(s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- ///
- /// The content style.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(ConsoleTextStyle style, string s, params object[] args)
- => StyleConsole.Default.WriteLine(style, s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(ConsoleColor foreground, string s, params object[] args)
- => StyleConsole.Default.WriteLine(foreground, s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, string s, params object[] args)
- => StyleConsole.Default.WriteLine(foreground, background, s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(Color foreground, string s, params object[] args)
- => StyleConsole.Default.WriteLine(foreground, s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(Color foreground, Color background, string s, params object[] args)
- => StyleConsole.Default.WriteLine(foreground, background, s, args);
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// A composite format string to output.
- /// An object array that contains zero or more objects to format.
- /// format is invalid. -or- The index of a format item is less than zero, or greater than or equal to the length of the args array.
- public static void WriteLine(IConsoleTextPrettier style, string s, params object[] args)
- => StyleConsole.Default.WriteLine(style, s, args);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A composite format string to output.
- public static void WriteLine(StringBuilder s)
- => StyleConsole.Default.WriteLine(s);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- ///
- /// The content style.
- /// A composite format string to output.
- public static void WriteLine(ConsoleTextStyle style, StringBuilder s)
- => StyleConsole.Default.WriteLine(style, s);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void WriteLine(ConsoleColor foreground, StringBuilder s)
- => StyleConsole.Default.WriteLine(foreground, s);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, StringBuilder s)
- => StyleConsole.Default.WriteLine(foreground, background, s);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void WriteLine(Color foreground, StringBuilder s)
- => StyleConsole.Default.WriteLine(foreground, s);
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void WriteLine(Color foreground, Color background, StringBuilder s)
- => StyleConsole.Default.WriteLine(foreground, background, s);
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// A composite format string to output.
- public static void WriteLine(IConsoleTextPrettier style, StringBuilder s)
- => StyleConsole.Default.WriteLine(style, s?.ToString());
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A composite format string to output.
- public static void WriteLine(SecureString s)
- => StyleConsole.Default.WriteLine(s?.ToUnsecureString());
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- ///
- /// The content style.
- /// A composite format string to output.
- public static void WriteLine(ConsoleTextStyle style, SecureString s)
- => StyleConsole.Default.WriteLine(style, s?.ToUnsecureString());
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A composite format string to output.
- public static void WriteLine(ConsoleColor foreground, SecureString s)
- => StyleConsole.Default.WriteLine(foreground, s?.ToUnsecureString());
-
- ///
- /// Writes the specified string value, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A composite format string to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, SecureString s)
- => StyleConsole.Default.WriteLine(foreground, background, s.ToUnsecureString());
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(int number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(int number, string format)
- => StyleConsole.Default.WriteLine(number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, int number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleTextStyle style, int number, string format)
- => StyleConsole.Default.WriteLine(style, number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, int number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleColor foreground, int number, string format)
- => StyleConsole.Default.WriteLine(foreground, number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, int number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, int number, string format)
- => StyleConsole.Default.WriteLine(foreground, background, number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(long number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, long number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, long number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, long number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(ulong number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, ulong number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, ulong number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, ulong number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(float number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, float number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, float number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, float number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(decimal number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, decimal number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, decimal number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, decimal number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- public static void WriteLine(double number)
- => StyleConsole.Default.WriteLine(number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(double number, string format)
- => StyleConsole.Default.WriteLine(number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- public static void WriteLine(ConsoleTextStyle style, double number)
- => StyleConsole.Default.WriteLine(style, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleTextStyle style, double number, string format)
- => StyleConsole.Default.WriteLine(style, number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- public static void WriteLine(ConsoleColor foreground, double number)
- => StyleConsole.Default.WriteLine(foreground, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleColor foreground, double number, string format)
- => StyleConsole.Default.WriteLine(foreground, number, format);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, double number)
- => StyleConsole.Default.WriteLine(foreground, background, number);
-
- ///
- /// Writes the specified number, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// A number to output.
- /// A standard or custom numeric format string.
- /// format is invalid or not supported.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, double number, string format)
- => StyleConsole.Default.WriteLine(foreground, background, number, format);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void WriteLine(char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.WriteLine(value, start, count);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void WriteLine(ConsoleTextStyle style, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.WriteLine(style, value, start, count);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void WriteLine(ConsoleColor foreground, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.WriteLine(foreground, value, start, count);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.WriteLine(foreground, background, value, start, count);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The starting position in value.
- /// The number of characters to write.
- public static void WriteLine(IConsoleTextPrettier style, char[] value, int start = 0, int? count = null)
- => StyleConsole.Default.WriteLine(style, value, start, count);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The value to write.
- /// The number of times to append value.
- public static void WriteLine(char value, int repeatCount = 1)
- => StyleConsole.Default.WriteLine(value, repeatCount);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The content style.
- /// The value to write.
- /// The number of times to append value.
- public static void WriteLine(ConsoleTextStyle style, char value, int repeatCount = 1)
- => StyleConsole.Default.WriteLine(style, value, repeatCount);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The value to write.
- /// The number of times to append value.
- public static void WriteLine(ConsoleColor foreground, char value, int repeatCount = 1)
- => StyleConsole.Default.WriteLine(foreground, value, repeatCount);
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// The value to write.
- /// The number of times to append value.
- public static void WriteLine(IConsoleTextPrettier style, char value, int repeatCount = 1)
- => StyleConsole.Default.WriteLine(style, value, repeatCount);
-
- ///
- /// Writes the specified characters, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The foreground color.
- /// The background color.
- /// The value to write.
- /// The number of times to append value.
- public static void WriteLine(ConsoleColor? foreground, ConsoleColor? background, char value, int repeatCount = 1)
- => StyleConsole.Default.WriteLine(foreground, background, value, repeatCount);
-
- ///
- /// Writes an exception, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The exception.
- /// true if output stack trace; otherwise, false.
- public static void WriteLine(Exception ex, bool stackTrace = false)
- => StyleConsole.Default.WriteLine(new ConsoleTextStyle(ConsoleColor.Red), null as ConsoleTextStyle, ex, stackTrace);
-
- ///
- /// Writes an exception, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The exception.
- /// The style of header.
- /// The style of details.
- /// true if output stack trace; otherwise, false.
- public static void WriteLine(ConsoleTextStyle captionStyle, ConsoleTextStyle messageStyle, Exception ex, bool stackTrace = false)
- => StyleConsole.Default.WriteLine(captionStyle, messageStyle, ex, stackTrace);
-
- ///
- /// Writes an exception, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The error information.
- public static void WriteLine(Data.ErrorMessageResult ex)
- => StyleConsole.Default.WriteLine(new ConsoleTextStyle(ConsoleColor.Red), null as ConsoleTextStyle, ex);
-
- ///
- /// Writes an exception, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The error information.
- /// The style of header.
- /// The style of details.
- public static void WriteLine(ConsoleTextStyle captionStyle, ConsoleTextStyle messageStyle, Data.ErrorMessageResult ex)
- => StyleConsole.Default.WriteLine(captionStyle, messageStyle, ex);
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The JSON instance.
- public static void WriteLine(IJsonDataNode json)
- => StyleConsole.Default.WriteLine(new JsonConsoleStyle().CreateTextCollection(json, 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// The JSON instance.
- public static void WriteLine(JsonConsoleStyle style, IJsonDataNode json)
- => StyleConsole.Default.WriteLine((style ?? new JsonConsoleStyle()).CreateTextCollection(json, 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The JSON instance.
- public static void WriteLine(System.Text.Json.Nodes.JsonObject json)
- => StyleConsole.Default.WriteLine(new JsonConsoleStyle().CreateTextCollection(json == null ? null : (JsonObjectNode)json, 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// The JSON instance.
- public static void WriteLine(JsonConsoleStyle style, System.Text.Json.Nodes.JsonObject json)
- => StyleConsole.Default.WriteLine((style ?? new JsonConsoleStyle()).CreateTextCollection(json == null ? null : (JsonObjectNode)json, 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The JSON instance.
- public static void WriteLine(IJsonObjectHost json)
- => StyleConsole.Default.WriteLine(new JsonConsoleStyle().CreateTextCollection(json?.ToJson(), 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// The JSON instance.
- public static void WriteLine(JsonConsoleStyle style, IJsonObjectHost json)
- => StyleConsole.Default.WriteLine((style ?? new JsonConsoleStyle()).CreateTextCollection(json?.ToJson(), 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The JSON instance.
- public static void WriteLine(System.Text.Json.Nodes.JsonArray json)
- => StyleConsole.Default.WriteLine(new JsonConsoleStyle().CreateTextCollection(json == null ? null : (JsonArrayNode)json, 0));
-
- ///
- /// Writes a JSON object, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The style.
- /// The JSON instance.
- public static void WriteLine(JsonConsoleStyle style, System.Text.Json.Nodes.JsonArray json)
- => StyleConsole.Default.WriteLine((style ?? new JsonConsoleStyle()).CreateTextCollection(json == null ? null : (JsonArrayNode)json, 0));
-
- ///
- /// Writes the specified data, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// A representation model.
- public static void WriteLine(IConsoleTextCreator model)
- => StyleConsole.Default.WriteLine(model);
-
- ///
- /// Writes the specified data, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The type of data model.
- /// The style.
- /// A data model.
- public static void WriteLine(IConsoleTextCreator style, T data)
- => StyleConsole.Default.WriteLine(style, data);
-
- ///
- /// Writes the specified data, followed by the current line terminator, to the standard output stream.
- /// It will flush immediately.
- ///
- /// The type of data model.
- /// The additional options.
- /// The style.
- /// A data model.
- /// The additional options.
- public static void WriteLine(IConsoleTextCreator style, TData data, TOptions options)
- => StyleConsole.Default.WriteLine(style, data, options);
-
- ///
- /// Writes a progress component, followed by the current line terminator, to the standard output stream.
- ///
- /// The options.
- /// The progress result.
- public static OneProgress WriteLine(ConsoleProgressStyle style)
- => StyleConsole.Default.WriteLine(style, null);
-
- ///
- /// Writes a progress component, followed by the current line terminator, to the standard output stream.
- ///
- /// The caption; or null if no caption. It will be better if it is less than 20 characters.
- /// The progress size.
- /// The progress kind.
- /// The progress result.
- public static OneProgress WriteLine(ConsoleProgressStyle.Sizes progressSize, string caption, ConsoleProgressStyle.Kinds kind = ConsoleProgressStyle.Kinds.Full)
- => StyleConsole.Default.WriteLine(progressSize, caption, kind);
-
- ///
- /// Writes a progress component, followed by the current line terminator, to the standard output stream.
- ///
- /// The progress size.
- /// The progress kind.
- /// The progress result.
- public static OneProgress WriteLine(ConsoleProgressStyle.Sizes progressSize, ConsoleProgressStyle.Kinds kind = ConsoleProgressStyle.Kinds.Full)
- => StyleConsole.Default.WriteLine(progressSize, kind);
-
- ///
- /// Writes a progress component, followed by the current line terminator, to the standard output stream.
- ///
- /// The caption; or null if no caption. It will be better if it is less than 20 characters.
- /// The style.
- /// The progress result.
- public static OneProgress WriteLine(ConsoleProgressStyle style, string caption)
- => StyleConsole.Default.WriteLine(style, caption);
-
- ///
- /// Writes the specific lines to the standard output stream.
- ///
- /// The count of line.
- public static void WriteLines(int count)
- => StyleConsole.Default.WriteLines(count);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The text content collection.
- public static void WriteLines(IEnumerable content)
- => StyleConsole.Default.WriteLines(content);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The text content.
- /// The additional text content collection.
- public static void WriteLines(ConsoleText content, params ConsoleText[] additionalContext)
- => StyleConsole.Default.WriteLines(content, additionalContext);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The string collection to write. Each one in a line.
- public static void WriteLines(IEnumerable col)
- => StyleConsole.Default.WriteLines(col);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The content style.
- /// The string collection to write. Each one in a line.
- public static void WriteLines(ConsoleTextStyle style, IEnumerable col)
- => StyleConsole.Default.WriteLines(style, col);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The foreground color of the console.
- /// The string collection to write. Each one in a line.
- public static void WriteLines(ConsoleColor foreground, IEnumerable col)
- => StyleConsole.Default.WriteLines(foreground, col);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The foreground color of the console.
- /// The background color.
- /// The string collection to write. Each one in a line.
- public static void WriteLines(ConsoleColor foreground, ConsoleColor background, IEnumerable col)
- => StyleConsole.Default.WriteLines(foreground, background, col);
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The string collection to write. Each one in a line.
- /// A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
- public static void WriteLines(IEnumerable col, Func selector)
- {
- if (col == null) return;
- if (selector == null) selector = (ele, i) => ele?.ToString();
- StyleConsole.Default.WriteLines(col.Select(selector));
- }
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The foreground color of the console.
- /// The string collection to write. Each one in a line.
- /// A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
- public static void WriteLines(ConsoleColor foreground, IEnumerable col, Func selector)
- {
- if (col == null) return;
- if (selector == null) selector = (ele, i) => ele?.ToString();
- StyleConsole.Default.WriteLines(foreground, col.Select(selector));
- }
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The string collection to write. Each one in a line.
- /// A transform function to apply to each element.
- public static void WriteLines(IEnumerable col, Func selector)
- {
- if (col == null) return;
- if (selector == null) selector = ele => ele?.ToString();
- StyleConsole.Default.WriteLines(col.Select(selector));
- }
-
- ///
- /// Writes the current line terminator for each item, to the standard output stream.
- ///
- /// The foreground color of the console.
- /// The string collection to write. Each one in a line.
- /// A transform function to apply to each element.
- public static void WriteLines(ConsoleColor foreground, IEnumerable col, Func selector)
- {
- if (col == null) return;
- if (selector == null) selector = ele => ele?.ToString();
- StyleConsole.Default.WriteLines(foreground, col.Select(selector));
- }
-
- ///
- /// Writes a collection of item for selecting.
- ///
- /// The collection data.
- /// The selection display options.
- /// The result of selection.
- public static SelectionResult