public override void EvaluateNode(EvaluationContext context, AstMode mode) { var result = new ValuesList(); foreach (var expr in ChildNodes) { expr.Evaluate(context, AstMode.Read); result.Add(context.Data.Pop()); } //Push list on the stack context.Data.Push(result); }
/// <summary> /// 将指定字段值数组添加到ValuesList属性。 /// </summary> /// <param name="values">字段值数组(一条记录的动态参数值)。</param> /// <exception cref="ArgumentNullException">如果values为空引用,则抛出该异常。</exception> public void AddValues(object[] values) { if (values == null) { throw new ArgumentNullException("values"); } if (values.Length > 0) { ValuesList.Add(values); } }
public FormFieldViewModel(FormField field, string[] languageCodes) : this() { var names = field.GetNames(true); var values = field.GetValues(false); IEnumerable <Option> options = typeof(OptionsField).IsAssignableFrom(field.GetType()) ? ((OptionsField)field).Options : new List <Option>(); foreach (var name in names) { if (languageCodes.Contains(name.LanguageCode)) { Names.Add(name.LanguageCode, name.Value); } } foreach (var value in values) { if (languageCodes.Contains(value.LanguageCode)) { if (Values.ContainsKey(value.LanguageCode)) { Values = new Dictionary <string, string>(); ValuesList.Add(Values); Values.Add(value.LanguageCode, value.Value); } else { Values.Add(value.LanguageCode, value.Value); } } } foreach (string code in languageCodes) { SelectedOptions.Add(code, new List <string>()); } foreach (var option in options) { if (option.Selected) { foreach (var optionVal in option.Value) { if (languageCodes.Contains(optionVal.LanguageCode)) { SelectedOptions[optionVal.LanguageCode].Add(optionVal.Value); } } } } }
/// <summary> /// 将指定数据表中的值添加到ValuesList属性。 /// </summary> /// <param name="dt">数据表。</param> /// <exception cref="ArgumentNullException">如果dt为空引用,则抛出该异常。</exception> public void AddValues(DataTable dt) { if (dt == null) { throw new ArgumentNullException("dt"); } if (dt.Columns.Count == 0 || dt.Rows.Count == 0) { return; } //将数据表中每条记录的字段值数组,复制到ValuesList属性中 foreach (DataRow row in dt.Rows) { ValuesList.Add(row.ItemArray); } }
public void AddValue(params string[] values) { if (values.Length == IndiciesCount) { string ready = "("; for (int i = 0; i < values.Length; i++) { if (values[i] == values.Last()) { ready += $"'{values[i]}')"; } else { ready += $"'{values[i]}', "; } } ValuesList.Add(ready); } else { throw new FormatException($"Incorrect values count for adding to statement. Need: '{IndiciesCount}', received: {values.Length}"); } }
public bool LoadTiff(string Filename, out Exception errorMsg) { errorMsg = new Exception(); try { using (var stream = File.Open(Filename, FileMode.Open)) { var reader = TiffReader.Create(stream); reader.ReadHeader(); // Read Header // Read Image File Directories for (var count = reader.ReadImageFileDirectory(); count != 0; count = reader.ReadImageFileDirectory()) { Dictionary.Clear(); // Read Tags for (ITag tag = reader.ReadTag(); tag != null; tag = reader.ReadTag()) { Dictionary.Add(tag.TagId, new Collection <object>()); switch (tag.TagId) { case TiffTags.StripOffsets: // Read Values of Tag for (object value = reader.ReadHandle(); value != null; value = reader.ReadHandle()) { Dictionary[tag.TagId].Add(value); } break; default: // Read Values of Tag for (object value = reader.ReadValue(); value != null; value = reader.ReadValue()) { Dictionary[tag.TagId].Add(value); } break; } } // Read Strips for (int i = 0; i < Dictionary[TiffTags.StripOffsets].Count; i++) { ValuesList.Clear(); var data = reader.ReadData((TiffHandle)Dictionary[TiffTags.StripOffsets][i], Convert.ToInt64(Dictionary[TiffTags.StripByteCounts][i])); ValuesList.Add(data); } ImageHeight = (ushort)Dictionary[TiffTags.ImageLength][0]; ImageWidth = (ushort)Dictionary[TiffTags.ImageWidth][0]; } } } catch (Exception e) { ValuesList.Add(new byte[0]); errorMsg = e; return(false); } return(true); }