从Xamarin.android中的意图中提取所有额外的列表,然后将其保存在字典中



我想列出意图对象的所有附加功能(及其值),然后将它们保存在字典中。

第一个问题是我不必知道所有键。第二个问题是有些值是字符串,有些是布尔值...等等。我如何在循环中获取值(通过键循环)并保存值在c#xamarin.android中?

linq variant

Bundle bundle = intent.Extras;
Dictionary<string, object> dict = bundle.KeySet()
    .ToDictionary<string, string, object>(key => key, key => bundle.Get(key));

您也可以将其作为方便的扩展方法:

public static Dictionary<string, string> ToDictionary(this Bundle bundle)
{
    var dictionary = new Dictionary<string, string>();
    foreach (var key in bundle.KeySet())
    {
      dictionary.Add(key, b.Get(key).ToString());
    }   
    return dictionary;
}

在这里我发现的东西,我将分享它,以便别人可以节省时间。

//Didactic version
Bundle b = myIntent.Extras; //Where myIntent is of course an Intent
ICollection<string> c = b.KeySet(); //This is the collection of extras
Dictionary<string, string> d = new Dictionary<string, string>(); 
foreach (var key in c)
{
  Object value = b.Get(key);
  d.Add(key, value.ToString());
}   
//Short version
var b = myIntent.Extras; 
var d = new Dictionary<string, string>();
foreach (var key in b.KeySet();)
{
  d.Add(key, b.Get(key).ToString());
}   

最新更新