2011-12-21 91 views
0

我正在它建立一个KML文件的项目,以GPS坐标和创造地标的每一个点... 然后另一个特点是关于改变画面风格如果事情是真的。if语句用来检查是否值存在,然后写KML标签

更详细:

我从一个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个值(分别为3个不是空值),我需要得到3个不同图片的点,其他所有的图片都是默认值...

所以有if语句有问题,但我现在不明白。很抱歉,如果事情是不明确的,我会尝试修复它..

任何指示或建议都非常欢迎。希望你能理解这是什么意思这一切,并帮助... :(

期望中的KML文件(有它有特定日期在数据库中3分,其他所有的点都具有相同的图片)

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

谢谢你们

+0

是否缺少在代码上'datesList'一个循环? – Strillo 2011-12-21 15:38:51

+0

你有没有告诉我们关于这段代码的秘密循环? :)这也看看datesList呢?你快到了。 – 2011-12-21 16:00:18

+0

是的,我。是的,在此之前有一个for循环...我将编辑代码,以便您可以看到... – Pepys 2011-12-21 16:02:06

回答

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"); 
    } 
} 
+0

谢谢老兄,我试过了,但我得到标签200次为每个地标(我有200行在datesList) – Pepys 2011-12-21 15:51:31

+0

这就是会发生什么,其他照顾这一点。标签是否与列表中的内容相对应? – 2011-12-21 15:56:54

+0

你是什么意思,如果他们相符? – Pepys 2011-12-21 15:58:05

2

你的if语句,只要集合中的日期不为空,不等于空(“ ”)..所以,如果你有返回true您至少会返回一个有效日期值#randomColorIcon。

我会使用这样的:

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

巧妙的是,它会返回true,如果有日期集合中的任何位置,而不是如果特定项目与lambda表达式中的条件匹配。 – 2011-12-21 15:39:33

+0

噢,我的上帝...所以几乎相同的东西,但使用.ForEach(...)将完成这项工作? – Pepys 2011-12-21 15:46:53

+0

我试过了,但又一次...我得到了 200次(我在列表中的值) – Pepys 2011-12-21 15:55:03

相关问题