本文整理汇总了C#中System.Collections.Dictionary.First方法的典型用法代码示例。如果您正苦于以下问题:C# Dictionary.First方法的具体用法?C# Dictionary.First怎么用?C# Dictionary.First使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Collections.Dictionary
的用法示例。
在下文中一共展示了Dictionary.First方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckBaseTypes
private IWriteHandler CheckBaseTypes(Type type, IEnumerable<Type> baseTypes)
{
IDictionary<Type, IWriteHandler> possibles = new Dictionary<Type, IWriteHandler>();
foreach (Type item in baseTypes)
{
// TODO Better way to decide the most appropriate possibility
if (possibles.Count < 1)
{
IWriteHandler h;
if (handlers.TryGetValue(item, out h))
{
possibles.Add(item, h);
}
}
}
switch (possibles.Count)
{
case 0: return null;
case 1:
{
IWriteHandler h = possibles.First().Value;
handlers = handlers.Add(type, h);
return h;
}
default:
throw new TransitException("More thane one match for " + type);
}
}
示例2: ToRelativeTime
public static string ToRelativeTime(this DateTime date)
{
int Minute = 60;
int Hour = Minute * 60;
int Day = Hour * 24;
int Year = Day * 365;
var thresholds = new Dictionary<long, Func<TimeSpan, string>>
{
{2, t => "a second ago"},
{Minute, t => String.Format("{0} seconds ago", (int)t.TotalSeconds)},
{Minute * 2, t => "a minute ago"},
{Hour, t => String.Format("{0} minutes ago", (int)t.TotalMinutes)},
{Hour * 2, t => "an hour ago"},
{Day, t => String.Format("{0} hours ago", (int)t.TotalHours)},
{Day * 2, t => "yesterday"},
{Day * 30, t => String.Format("{0} days ago", (int)t.TotalDays)},
{Day * 60, t => "last month"},
{Year, t => String.Format("{0} months ago", (int)t.TotalDays / 30)},
{Year * 2, t => "last year"},
{Int64.MaxValue, t => String.Format("{0} years ago", (int)t.TotalDays / 365)}
};
var difference = DateTime.UtcNow - date.ToUniversalTime();
return thresholds.First(t => difference.TotalSeconds < t.Key).Value(difference);
}
示例3: DecodeRsaPrivateKey
/// <summary>
/// This helper function parses an RSA private key using the ASN.1 format
/// </summary>
/// <param name="privateKeyBytes">Byte array containing PEM string of private key.</param>
/// <returns>An instance of <see cref="RSACryptoServiceProvider"/> rapresenting the requested private key.
/// Null if method fails on retriving the key.</returns>
public static RSACryptoServiceProvider DecodeRsaPrivateKey(string privateKey,string password="")
{
Dictionary<string, string> extras = new Dictionary<string, string>();
byte[] bytes = Helpers.GetBytesFromPEM(privateKey, out extras);
if (extras.Any(x => x.Value.Contains("ENCRYPTED")) && extras.Any(x => x.Key.Contains("DEK-Inf")))
{
String saltstr = extras.First(x => x.Key.Contains("DEK-Inf")).Value.Split(',')[1].Trim();
byte[] salt = new byte[saltstr.Length / 2];
for (int i = 0; i < salt.Length; i++)
salt[i] = Convert.ToByte(saltstr.Substring(i * 2, 2), 16);
SecureString despswd = new SecureString(); // GetSecPswd("Enter password to derive 3DES key==>");
foreach (char c in password)
despswd.AppendChar(c);
byte[] decoded = DecryptRSAPrivatePEM(bytes, salt, despswd);
bytes = decoded;
}
return DecodeRsaPrivateKey(bytes);
}
示例4: GetKeyString
/// <summary>
/// Gets the string of keys used in URI.
/// </summary>
/// <param name="context">Wrapping context instance.</param>
/// <param name="keys">The dictionary containing key pairs.</param>
/// <returns>The string of keys.</returns>
public static string GetKeyString(DataServiceContext context, Dictionary<string, object> keys)
{
var requestInfo = new RequestInfo(context);
var serializer = new Serializer(requestInfo);
if (keys.Count == 1)
{
return serializer.ConvertToEscapedUriValue(keys.First().Key, keys.First().Value);
}
else
{
StringBuilder stringBuilder = new StringBuilder();
foreach (var keyPair in keys)
{
stringBuilder.Append(keyPair.Key);
stringBuilder.Append(UriHelper.EQUALSSIGN);
stringBuilder.Append(serializer.ConvertToEscapedUriValue(keyPair.Key, keyPair.Value));
stringBuilder.Append(UriHelper.COMMA);
}
stringBuilder.Remove(stringBuilder.Length - 1, 1);
return stringBuilder.ToString();
}
}
示例5: should_map_non_generic_dictionary_to_generic_enumerable_of_dictionary_entry
public void should_map_non_generic_dictionary_to_generic_enumerable_of_dictionary_entry()
{
var results = new Dictionary<string, object>
{{"oh", 1}, {"hai", 2}}.As<IDictionary>().AsEnumerable();
results.ShouldTotal(2);
var result = results.First();
result.ShouldBeType<DictionaryEntry>();
result.Key.ShouldEqual("oh");
result.Value.ShouldEqual(1);
result = results.Skip(1).First();
result.ShouldBeType<DictionaryEntry>();
result.Key.ShouldEqual("hai");
result.Value.ShouldEqual(2);
}
示例6: Save
public void Save()
{
if (this.ResFiles == null || this.Datas == null)
return;
Dictionary<string, ResXResourceWriter> writers = new Dictionary<string, ResXResourceWriter>();
foreach (var f in this.ResFiles) {
writers.Add(f.Key, new ResXResourceWriter(f.Value));
}
foreach (var d in this.Datas) {
if (string.IsNullOrEmpty(d.Key))
continue;
var writer = writers.First(w => w.Key == "Default");
writer.Value.AddResource(d.Key, (string)d.Default);
foreach (var w in writers.Where(ww => !ww.Key.Equals("Default"))) {
var k = w.Key.Replace("-", "_");
PropertyInfo p = d.GetType().GetProperty(k);
if (p != null) {
var value = (string)p.GetValue(d);
w.Value.AddResource(d.Key, value);
}
}
d.IsExists = true;
}
foreach (var w in writers) {
w.Value.Dispose();
}
}
示例7: GetClosestReflectionPoint
/// <summary>
/// 获取反射点坐标及碰撞线段和碰撞散射体的旋转方向
/// </summary>
/// <param name="seg"></param>
/// <param name="collision_seg"></param>
/// <param name="dir"></param>
/// <returns></returns>
public Point? GetClosestReflectionPoint(LineSegment seg, out LineSegment collision_seg, out SCATTER_SEG_DIRECTION dir, out double dc)
{
Dictionary<Point?, object[]> pt_seg_dir_dict = new Dictionary<Point?, object[]>();
foreach (Scatter scatter in this.Scatters)
{
Point? tmp_pt = null;
LineSegment tmp_seg = null;
SCATTER_SEG_DIRECTION tmp_dir = scatter.SegDirection;
double tmp_dc = scatter.DielectricConstant;
tmp_pt = scatter.GetClosestReflectionPoint(seg, out tmp_seg);
if (tmp_pt != null)
pt_seg_dir_dict.Add(tmp_pt, new object[] { tmp_seg, tmp_dir, tmp_dc });
}
if(pt_seg_dir_dict.Count == 0) //没有交点
{
collision_seg = null;
dir = SCATTER_SEG_DIRECTION.CLOCKWISE;
dc = 0;
return null;
}
KeyValuePair<Point?, object[]> tmp_kvp = pt_seg_dir_dict.First();
double min_d2 = double.PositiveInfinity;
foreach (KeyValuePair<Point?, object[]> kvp in pt_seg_dir_dict)
{
double dist2 = Math.Pow(kvp.Key.Value.X - seg.TailPosition.X, 2) + Math.Pow(kvp.Key.Value.Y - seg.TailPosition.Y, 2);
if (dist2 > 0 && dist2 < min_d2)
{
min_d2 = dist2;
tmp_kvp = kvp;
}
}
collision_seg = tmp_kvp.Value[0] as LineSegment;
dir = (SCATTER_SEG_DIRECTION)tmp_kvp.Value[1];
dc = (double)tmp_kvp.Value[2];
return tmp_kvp.Key;
}
示例8: startDevideVotingProcess
public void startDevideVotingProcess(Dictionary<string, ArrayList> solutionTasks)
{
//创建输入参数
Dictionary<string, object> para = new Dictionary<string, object>();
para.Add("solutionTasks", solutionTasks);
//创建实例对象
WorkflowApplication currentWorkflowInstance = new WorkflowApplication(new decomposeVoting(), para);
//委托流程结束时候调用的方法
currentWorkflowInstance.Completed = new Action<WorkflowApplicationCompletedEventArgs>(DevideVotingWorkflowCompleted);
//启动实例
currentWorkflowInstance.Run();
CrowdTaskService crowdTaskService = new CrowdTaskService();
//分解任务
CrowdTask divideTask = crowdTaskService.findCrowdTaskByWorkflowId(solutionTasks.First().Key);
CrowdTask crowdTask = new CrowdTask();
crowdTask.taskName = divideTask.taskName;
crowdTask.taskDescription = divideTask.taskDescription;
crowdTask.taskType = TaskType.decomposeVotingTask;
crowdTask.taskWorkflowId = currentWorkflowInstance.Id.ToString();
crowdTask.taskParentWorkflowId = crowdTaskService.findCrowdTaskByWorkflowId(solutionTasks.Keys.First().ToString()).taskParentWorkflowId;
int result = crowdTaskService.insert(crowdTask);
//更新每个实例的主工作流Id
crowdTaskService.updateCrowdTaskMainTaskIdByWorkflowId(currentWorkflowInstance.Id.ToString());
if (result == 1)
{
//将当前实例加入到分解任务集合中
MyWorkflowInstance.setDecomposeVotingWorkflowApplication(currentWorkflowInstance.Id.ToString(), currentWorkflowInstance);
}
}
示例9: DictionaryToObj
public static object DictionaryToObj(Dictionary<string, object> dict, Type type)
{
Object paramObj = Activator.CreateInstance(type);
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
if (!dict.Any(x => x.Key.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)))
continue;
KeyValuePair<string, object> item = dict.First(x => x.Key.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase));
// Find which property type (int, string, double? etc) the CURRENT property is...
Type tPropertyType = paramObj.GetType().GetProperty(property.Name).PropertyType;
// Fix nullables...
Type newT = Nullable.GetUnderlyingType(tPropertyType) ?? tPropertyType;
string paramType = newT.FullName.ToLower();
//checking and handling nullable type
if (newT.IsGenericType && newT.GetGenericTypeDefinition() == typeof(Nullable<>))
{
paramType = newT.GetGenericArguments()[0].FullName.ToLower();
if (paramType == "system.datetime" || paramType == "system.single" || paramType == "system.boolean" || paramType == "system.string" || paramType == "system.int32" || paramType == "system.int64" || paramType == "system.decimal" || paramType == "system.double")
{
if (item.Value != null)
{
object newA = Convert.ChangeType(item.Value, Type.GetType(newT.GetGenericArguments()[0].FullName));
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, newA, null);
}
}
}
//ok for string decimal int not for class object type
else if (paramType == "system.datetime" || paramType == "system.single" || paramType == "system.boolean" || paramType == "system.string" || paramType == "system.int32" || paramType == "system.int64" || paramType == "system.decimal" || paramType == "system.double")
{
if (item.Value != null)
{
object newA = Convert.ChangeType(item.Value, newT);
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, newA, null);
}
}
else
{
if (newT.IsClass == true && newT.IsGenericType == true)
{
Type objectParamType = Type.GetType(newT.FullName);
if (objectParamType == null)
{
if (newT.Assembly.Location != null && newT.Assembly.Location != string.Empty)
{
Assembly assembly = Assembly.LoadFile(newT.Assembly.Location);
objectParamType = assembly.GetType(newT.FullName);
}
}
var obj = DictionaryToList((IList)item.Value, objectParamType);
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, obj, null);
}
else if (paramType == "system.array")
{
//value contain arraysvalue
Array arrValues = DictionaryToArray((IList)item.Value);
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, arrValues, null);
}
else if (paramType == "system.collections.arraylist")
{
//value contains array
var x = (IList)item.Value;
if (x.Count > 0)
{
ArrayList arrList = DictionaryToArrayList((IList)item.Value);
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, arrList, null);
}
}
else
{
Type objectParamType = Type.GetType(newT.FullName);
if (objectParamType == null)
{
if (newT.Assembly.Location != null && newT.Assembly.Location != string.Empty)
{
Assembly assembly = Assembly.LoadFile(newT.Assembly.Location);
objectParamType = assembly.GetType(newT.FullName);
}
}
var obj = DictionaryToObj((Dictionary<string, object>)item.Value, objectParamType);
paramObj.GetType().GetProperty(property.Name).SetValue(paramObj, obj, null);
}
}
}
//.........这里部分代码省略.........
示例10: GetInstancesElement
private FrameworkElement GetInstancesElement(Dictionary<string, IDictionary> instances)
{
var typeName = instances.First().Value[Key].ToString();
if (ShowInstanceKeys)
{
var listBox = new ListBox { DataContext = instances };
listBox.SelectionChanged += ListBox_SelectionChanged;
return new Expander
{
Header = typeName,
Content = listBox
};
}
else
{
return new Label { Content = typeName };
}
}