如果语句检查是否存在值,则写入KML标记

时间:2011-12-21 15:30:47

标签: c# list if-statement kml

我正在开发一个构建KML文件的项目,获取GPS坐标并为每个点创建地标...... 然后另一个功能是如果某些事情是真的改变图片风格。

更详细:

我有一个字符串列表,其中包含从gridview存储的值。该列表包含具有日期的元素和空的元素。然后我必须检查一个非空的 - 设置picture1,否则设置defaultPic。

以下是代码:

for (int i = 0; i < latList.Count; i++) //looping through all the coordinates

{

kml.WriteStartElement("Placemark");
kml.WriteElementString("name", "Point " + GridView1.Rows[i].Cells[0].Text);



  if (datesList.Any(dates => !String.IsNullOrEmpty(dates) && dates != "&nbsp;") )
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon");
  }
  else
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon2");
  }

我得到了包含所有相同图片的KML文件(“randomColorIcon”)。由于我在gridview中的日期列中有3个值(分别在datesList中有3个不是空值),我需要得到3个不同图片的点,所有其他图片都有默认值...

所以if语句有问题,但我现在还没有真正理解。对不起,如果有什么不清楚,我会尝试解决它..

非常欢迎任何指示或建议。希望你能理解我对这一切的意义和帮助...... :(

所需的KML文件(数据库中有3个点有日期,所有其他点都有相同的图片)

Desired KML 希望它是可见的......

谢谢你们

2 个答案:

答案 0 :(得分:2)

只要集合中的日期不为空且不等于空格(“”),您的if语句就会返回true。因此,如果您至少有一个有效日期值,则将返回#randomColorIcon。

我会用这个:

datesList.ForEach(d =>
    kml.WriteElementString("styleUrl", (!String.IsNullOrEmpty(d) && d != "&nbsp;") ? "#randomColorIcon" : "#randomColorIcon2");

答案 1 :(得分:2)

试试这个

kml.WriteStartElement("Placemark");
kml.WriteElementString("name", "Point " + GridView1.Rows[i].Cells[0].Text);


foreach(var dates in datesList)
{
  if (!String.IsNullOrWhiteSpace(dates)) )
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon");
  }
  else
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon2");
  }
}