protected virtual void AddFields(int i, string name, PropertyInfo propertyInfo) { ColumnNames.Add(name, propertyInfo); ColumnIndex.Add(i, propertyInfo); IndexToName.Add(i, name); NameToIndex.Add(name, i); }
protected override void Dispose(bool disposing) { ColumnNames.Clear(); ColumnIndex.Clear(); IndexToName.Clear(); NameToIndex.Clear(); }
void ForEnumPopulateMembers <TEnum>(string[] names, TEnum[] values) where TEnum : struct, IComparable, IFormattable, IConvertible { int index = 0; int length = names.Length; #region Handle None values int last_value = Reflection.EnumUtil <TEnum> .GetHashCodeSignExtended(values[length - 1]); Contract.Assert(last_value.IsNoneOrPositive()); // Enum.GetNames() sorts values by ToUInt64'ing, meaning negative values will appear after positive ones if (last_value.IsNone()) { length--; Members.Add(names[length]); NameToIndex.Add(names[length], index); } #endregion for (; index < length; index++) { Members.Add(names[index]); NameToIndex.Add(names[index], index); } }
public void CreateTable(List <PmxMaterial> ml) { NameToIndex.Clear(); IndexToName.Clear(); int num = 0; for (int i = 0; i < ml.Count; i++) { PmxMaterial pmxMaterial = ml[i]; if (!string.IsNullOrEmpty(pmxMaterial.Tex) && !NameToIndex.ContainsKey(pmxMaterial.Tex)) { NameToIndex.Add(pmxMaterial.Tex, num); IndexToName.Add(num, pmxMaterial.Tex); num++; } if (!string.IsNullOrEmpty(pmxMaterial.Sphere) && !NameToIndex.ContainsKey(pmxMaterial.Sphere)) { NameToIndex.Add(pmxMaterial.Sphere, num); IndexToName.Add(num, pmxMaterial.Sphere); num++; } if (!string.IsNullOrEmpty(pmxMaterial.Toon) && !NameToIndex.ContainsKey(pmxMaterial.Toon) && !SystemToon.IsSystemToon(pmxMaterial.Toon)) { NameToIndex.Add(pmxMaterial.Toon, num); IndexToName.Add(num, pmxMaterial.Toon); num++; } } }
public int GetIndex(string name) { int result = -1; if (NameToIndex.ContainsKey(name)) { result = NameToIndex[name]; } return(result); }
public void CreateTable(string[] names) { NameToIndex.Clear(); IndexToName.Clear(); for (int i = 0; i < names.Length; i++) { if (!NameToIndex.ContainsKey(names[i])) { NameToIndex.Add(names[i], i); } IndexToName.Add(i, names[i]); } }
public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { s.StreamAttribute("name", ref Name); s.StreamElements("Member", Members); if (s.IsReading) { int index = 0; foreach (string name in Members) { NameToIndex.Add(name, index++); } } Contract.Assert(!IsCodeEnum); }