我正在呼叫的方法接受List<string>
。
我需要从列表中选择我想要的东西
listviewItems.Select(x => x.Tag).ToList()
但由于标签本身是一个对象,因此结果为List<object>
,因此不起作用。
我也试过了
listviewItems.Select(x => (string) x.Tag).ToList()
(List<string>) listviewItems.Select(x => x.Tag).ToList()
listviewItems.Select(x => (List<string>) x.Tag).ToList()
但这些都不会返回List<string>
。
投这个的正确方法是什么?
答案 0 :(得分:1)
这确实会返回package com.geekybrackets.virtualtourguide;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.WeakHashMap;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
public GoogleMap mMap;
double lat = 0;
double lon = 0;
static final int GET_DETAILS = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
public void onMapClick(LatLng latLng) {
lat = latLng.latitude;
lon = latLng.longitude;
startActivityForResult(new Intent(MapsActivity.this,newMarker.class), GET_DETAILS);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == GET_DETAILS) {
if (resultCode == RESULT_OK) {
String marker_title=data.getStringExtra("title");
Marker m = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(marker_title));
mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, lon)));
}
}
}
}
。您的代码中的其他地方存在问题。
{{1}}
答案 1 :(得分:1)
您只需要在对象上调用.ToString()。但是,这取决于您是否从数据库中调用。
在内存选项中:
listviewItems.Select(x => x.Tag?.ToString() ?? "").ToList()
来自实体框架:
listviewItems.Select(x => x.Tag)
.ToList() // Get them in memory first as the ToString doesn't convert to SQL.
.Select(tag => tag.ToString()) // Then convert to string
.ToList();
答案 2 :(得分:1)
如果您已有List<string> strings = objects.ConvertAll(obj => obj?.ToString());
,则可以使用List.ConvertAll
:
List<string> strings = listviewItems.Select(x => x.Tag?.ToString()).ToList();
如果你要构建它,你应该首先将对象转换为字符串:
google.load("elements", "1", {
packages: "keyboard"
});
function onLoad() {
console.log(lang);
var kbd = new google.elements.keyboard.Keyboard(
[google.elements.keyboard.LayoutCode.GERMAN],
['input1']);
}
google.setOnLoadCallback(onLoad);